3

Kendo UI を使用してデータソースを Kendo Grid にバインドしています。データソースにバインドされていないグリッドに列を作成する最良の方法を見つけようとしています。

現在、データソースにフィールドを作成し、javascript と jQuery を使用して、データがリモート エンドポイントから読み取られた後にその列の値を設定しています。

情報源:

schema: {
    model: {
        fields: {
            blah: {},
            empty_column: {}
        }
    }
}

グリッド:

columns: {
    field: "empty_column",
    width: 100,
    title: "Empty"
}

Javascript:

datasource.data[item].set("empty_column", computed_value);

すべてのコードは簡潔にするために編集されていますが、すべて正常に動作します。

私の質問: リモート エンドポイントに接続されていないこの新しい空の列に defaultValue を設定する方法はありますか? 私が設定したとき:

empty_column: {defaultValue: "None"}

グリッドにはまだ「未定義」と表示されています。読み取り操作でそのフィールドのデータを受け取っていないためだと思います。グリッドに defaultValue を設定する方法はありますか? こんな例は見たことがない…

4

1 に答える 1

7

defaultValueレコードが表示されるときではなく、レコードを作成するときに適用されます。

できるよ:

オプション 1:その中で使用するparseschema.fields.fieldName、次のようになります。

model: {
    fields: {
        empty_column: {
            type        : "string",
            defaultValue: "none",
            parse       : function (data) {
                if (!data.empty_columns) {
                    data.empty_column = "none";
                }
                return data;
            }
        },
        blah        : { type: "number" }
    }
},

オプション 2:schema.parse追加のフィールド値を追加するために使用します。

            schema: {
                model: {
                    fields: {
                        empty_column: {type: "string", defaultValue: "none"},
                        blah        : { type: "number" }
                    }
                },
                parse: function (response) {
                    $.each(response, function (idx, item) {
                        if (!item.empty_column) {
                            item.empty_column = "none";
                        }
                    });
                    return response;
                }
            }

もちろん、(両方のオプションについて) に以前の値がないことが確実にわかっている場合はempty_column、テスト条件を保存して割り当てだけを残すことができます。

于 2013-01-10T21:11:20.730 に答える