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/templating-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 に答える