Listview 带弹出编辑器的剑道列表视图
我想在弹出窗口中编辑listview项。我拼凑了一些不同的例子,但肯定遗漏了什么。这是我所拥有的,但我不知道如何将弹出窗口模板绑定到listview的数据源 以下是我的做法: 窗口模板:Listview 带弹出编辑器的剑道列表视图,listview,popup,kendo-ui,edit,Listview,Popup,Kendo Ui,Edit,我想在弹出窗口中编辑listview项。我拼凑了一些不同的例子,但肯定遗漏了什么。这是我所拥有的,但我不知道如何将弹出窗口模板绑定到listview的数据源 以下是我的做法: 窗口模板: <div id="window"></div> <script type="text/x-kendo-template" id="win-template"> <div>#:StuId#</div> </script>
<div id="window"></div>
<script type="text/x-kendo-template" id="win-template">
<div>#:StuId#</div>
</script>
#:StuId#
剑道/jQuery代码:
<script>
$(document).ready(function () {
var dataSource = new kendo.data.DataSource({
pageSize: 50,
transport: {
read: {
url: "GetData.asmx/GetStudentsByFeederId",
dataType: "xml",
data: { feederId: ("0123") }
}
},
schema: {
type: "xml",
data: "/ArrayOfStudentVO/StudentVO",
model: {
id: "student_id",
fields: {
StuId: { field: "student_id/text()", type: "string" },
StuName: { field: "stu_name/text()", type: "string"},
MathRec: { field: "math_rec/text()", type: "string" },
EnglishRec: { field: "english_rec/text()", type: "string" }
}
}
}
});
/* PAGER FUNCTION (Used in ListView) */
$("#pager").kendoPager({
dataSource: dataSource
});
/* LIST VIEW CREATION */
var listView = $("#listView").kendoListView({
editable: "true",
selectable: "true",
dataBound: onDataBound,
change: onChange,
dataSource: dataSource,
template: kendo.template($("#template").html())
}).data("kendoListView");
function onChange() {
var data = dataSource.view();
selected = $.map(this.select(), function(item) {
return data[$(item).index()].StuId;
});
kendoConsole.log("Selected: " + selected.length + " item(s), [" + selected.join(", ") + "]");
popUp(selected);
}
function popUp(d) {
var window = $("#window"),
undo = $("#undo")
.bind("click", function() {
window.data("d").open();
undo.hide();
});
if (!window.data("d")) {
window.kendoWindow({
width: "600px",
title: "Student Information",
close: onClose,
content: { template: kendo.template($("#win-template").html()) }
});
}
}
var onClose = function() {
undo.show();
}
</script>
$(文档).ready(函数(){
var dataSource=new kendo.data.dataSource({
页面大小:50,
运输:{
阅读:{
url:“GetData.asmx/GetStudentsByFeederId”,
数据类型:“xml”,
数据:{feederId:(“0123”)}
}
},
模式:{
键入:“xml”,
数据:“/ArrayOfStudentVO/StudentVO”,
型号:{
id:“学生id”,
字段:{
StuId:{field:“student_id/text()”,键入:“string”},
stune:{field:“stu_name/text()”,键入:“string”},
MathRec:{field:“math_rec/text()”,键入:“string”},
EnglishRec:{字段:“english_rec/text()”,键入:“string”}
}
}
}
});
/*寻呼机功能(在ListView中使用)*/
$(“#寻呼机”).kendoPager({
数据源:数据源
});
/*列表视图创建*/
var listView=$(“#listView”).kendoListView({
可编辑:“真”,
可选:“真”,
数据绑定:onDataBound,
改变:一旦改变,
数据源:数据源,
模板:kendo.template($(“#template”).html()
}).数据(“kendoListView”);
函数onChange(){
var data=dataSource.view();
selected=$.map(this.select(),函数(项){
返回数据[$(item).index()].StuId;
});
kendoConsole.log(“所选:“+Selected.length+”项),[“+Selected.join”(“,”+“]);
弹出窗口(选中);
}
功能弹出窗口(d){
变量窗口=$(“#窗口”),
撤消=$(“#撤消”)
.bind(“单击”,函数(){
window.data(“d”).open();
undo.hide();
});
如果(!window.data(“d”)){
window.kendoWindow({
宽度:“600px”,
标题:“学生信息”,
关闭:一旦关闭,
内容:{template:kendo.template($(“#win template”).html())}
});
}
}
var onClose=function(){
undo.show();
}
在代码中,我可以看到两个问题
您正在将listview与标识符#listview绑定-我在给定的HTML中看不到该标识符
在HTML中,您将模板标识符指定为#win template,在Javascript代码中,标识符为#template-应该是相同的
另外,HTML中没有给出寻呼机标识符。你能用这段代码做一个jsFiddle吗?还有:如果我没弄错的话,变量访问应该是:#=StuId#。你有没有弄明白这一点?我也想做同样的事情。