我正在加载Infragistics网格。加载时我有一个模板列,需要在知道要加载的内容之前检查数据集中的另一个值。它看起来不像Infragistics会让我这样做所以我需要在加载后在网格上运行查询以隐藏/显示某些信息。
例如:
我的网格:
$("#divGrid").igGrid({
columns: [
{
headerText: "",
width: "70px",
key: "Division",
template: ProperRights.GetTemplate("${Division}")
}
],
primaryKey: "EmployeeNumber",
autoGenerateColumns: false,
dataSource: AccountAdministrationGrid.GetGridData()
});
我的js模板逻辑:
var ProperRights = new function () {
this.GetTemplate = function(division) {
if (division === 'DIV1') {
return 'Special Stuff';
} else {
return "Boring Stuff";
}
};
};
这就是我想要做的,但ProperRights.GetTemplate只返回$ {Division}而不是网格行值。
所以我的下一个方法是在网格的末尾添加一个.ready()。然后循环遍历每个td并从行中分割出值并手动更改第一列中的值:
.ready(function () {
$("td").each(function () {
var id = $(this).text();
console.log(id);
});
});
但这也不起作用,它一直回来,因为网格尚未加载,发现0 td。
答案 0 :(得分:6)
在这种情况下,我建议使用Infragistics的模板引擎来为您的列创建条件模板。一些有用的资源提供了模板引擎的概述和特别是igGrid的条件行模板,可以在以下位置找到:
http://www.infragistics.com/products/jquery/sample/templating-engine/conditional-row-template
在您的特定场景中,您可以尝试类似的内容:
var ProperRightsTemplate = '{{if ${Division} == "Div1" }} <span> Some Value </span>';
ProperRightsTemplate += '{{else}} <span> Some boring stuff </span> {{/if}}';
希望这有帮助。