您有什么办法可以使用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 #\')"> }
]
});
});
答案 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]);
}