我正在使用KendoUI Web,并且在单击时显示Kendo ListView中的链接以显示Kendo Grid。我正在使用ListView的模板。
HTML:
<div id="listView" ></div>
<div id="grid" ></div>
模板:
<script type="text/x-kendo-tmplate" id="template">
<div>
<ul>
<li><a class="list k-link" title="#= title #" id="#= id#" >#= name #</a></li>
</ul>
</div>
</script>
我尝试使用以下代码执行此操作,但没有任何反应。只有id被正确读取但是没有请求。
$(" .list").live({click:function(){
var id=$(this).attr('id');
$("#grid").kendoGrid({
dataSource: {
transport: {
read: "somefile.php?id="+id,
},
schema: {
data:"data",
model: {
id: "id_pf",
fields:{
first:{},
second:{}
}
}
},
total: function(response) {
return $(response.data).length;
},
pageSize: 10
},
columns: [
{ title: "First", field: "first"},
{ title: "Second", field: "second"},
]
});
}});
答案 0 :(得分:3)
我通过删除函数外部的网格来解决这个问题。 因此,首先显示的网格没有数据。
var ds=new kendo.data.DataSource({
transport: {
read: "somefile.php",
},
schema: {
data:"data",
model: {
id: "id_pf",
fields:{
first:{},
second:{}
}
}
},
total: function(response) {
return $(response.data).length;
},
pageSize: 10
});
$("#grid").kendoGrid({
dataSource: ds,
columns: [
{ title: "First", field: "first"},
{ title: "Second", field: "second"},
]
});
在链接上单击,将使用更新的URL重新读取数据源,刷新并显示所需的数据。
$(" .list").live({click:function(){
var id=$(this).attr('id');
var gridUrl = "somefile.php?id="+ id;
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url =gridUrl;
grid.dataSource.read();
grid.dataSource.refresh();
}});