在kendo网格模板函数中传递详细信息行参考

时间:2013-09-16 12:20:36

标签: kendo-ui kendo-grid jquery-templates

您有什么办法可以使用kendo网格模板列将detailRow引用传递给函数吗?

这是我的踪迹。

  function detailInit(e) {
            detailRow = e.detailRow;
          detailRow.find("#mygrid").kendoGrid({
                    dataSource: {
                        data: empModel,
                    },
                    columns: [
                    {
                        field: "empId",
                        title: "Emp ID",
                        template: '<a href="\\#" onclick="showEmpDetails(\'#= detailRow #\')">        }
                           ]
                 });
                });

1 个答案:

答案 0 :(得分:0)

尝试将您在detailInit检索的每个detailRow放入全局定位的数组中,然后将此索引传递给您的click方法(或某种键 - 可以是字典,行有uid)然后制作方法根据您传入的ID读取数组/集合中的行详细信息。(理想情况下,通过uid直接从数据源读取行详细信息,无需复制数据。)请参考下面的代码作为伪代码,我没有机会跑它。

var rows = new Array(); 

$('.clickable').click(function () {
     // get the id for your detail
     var detailId = this.attr('detailId');
     // pass it further
     showEmpDetails(detailId);
});

function detailInit(e) {
      detailRow = e.detailRow;
      // add roe to your (cache) collection
      rows[rows.legth] =  detailRow ;
      detailRow.find("#mygrid").kendoGrid({
            dataSource: {data: empModel},
            columns: [
                {
                    field: "empId",
                    title: "Emp ID",
                    // add attribute onto your a tag
                    template: '<a href="\\#" detailId = "#= rows.legth #" class="clickable">' 
                }
                      ]
             });
});

function showEmpDetails(id) {
     // read from your collection and do what you need
     console.log(rows[id]);
}