Kendo UI Grid - 链接点击显示网格

时间:2012-09-13 12:06:07

标签: kendo-ui kendo-grid

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

}});

1 个答案:

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

     }});