1

我正在加载一个 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 就像网格尚未加载一样。

4

1 回答 1

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/template-engine/conditional-row-template

在您的特定情况下,您可以尝试类似的操作:

        var ProperRightsTemplate = '{{if ${Division} == "Div1" }} <span> Some Value </span>';
        ProperRightsTemplate += '{{else}} <span> Some boring stuff </span> {{/if}}';

希望这可以帮助。

于 2012-12-04T09:29:59.750 回答