Infragistics Jquery Grid onLoad

时间:2012-12-03 16:58:57

标签: jquery infragistics ignite-ui iggrid

我正在加载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。

1 个答案:

答案 0 :(得分:6)

在这种情况下,我建议使用Infragistics的模板引擎来为您的列创建条件模板。一些有用的资源提供了模板引擎的概述和特别是igGrid的条件行模板,可以在以下位置找到:

http://help.infragistics.com/Help/NetAdvantage/jQuery/2012.2/CLR4.0/html/Creating_Conditional_Template_Containing_Default%20Statement.html

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}}';

希望这有帮助。