4

我正在使用 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"},
                ]
    });

}});
4

1 回答 1

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

     }});
于 2012-09-14T17:13:28.767 回答