剑道UI网格-点击链接显示网格



我使用的是KendoUIWeb,当单击以显示Kendo网格时,我想要Kendo ListView中的链接。我正在使用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"},
                ]
    });
}});

我通过删除函数外的网格创建来解决这个问题。因此,首先显示没有数据的网格。

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();
     }});

最新更新