0

嗨,有什么方法可以使用 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 #\')">        }
                           ]
                 });
                });
4

1 回答 1

0

尝试将您检索到的每个 detailRowdetailInit放入全局数组中,然后将此索引传递给您的 click 方法(或某种键 - 可能是字典,行有 uid),然后使该方法从您的数组中读取行详细信息/collection 基于你传入的 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]);
}
于 2013-09-16T16:26:32.343 回答