1

コンボボックスを複雑なオブジェクトにバインドしています。このバインドでは、ID フィールドはこのオブジェクトの直接プロパティとして使用できますが、テキスト プロパティは子オブジェクト プロパティから取得されます。

値を正しく表示するように構成することはできましたが、optionLabel を指定する際に問題が発生し、「select」で Parent.Childproperty を指定できず、実行時エラーが発生しました (Uncaught TypeError: Cannot read property 'Childproperty' of undefined )

空の選択のために、モデル定義以下で複合オブジェクトを指定するにはどうすればよいですか?

   $('<input id="DegreeDDL" name="' + options.field + '"/>').appendTo(container).kendoDropDownList({
            autoBind: true,
            serverFiltering: true,
            optionLabel: {
                'Parent.Childproperty': "--- Select ---",
                ABCD_PK: null

            },
            dataSource: {
                transport: {
                    read: {
                        url: function (e) {
                            return "api/Org/XXXXXXXX?abcdPK=" + efgh;
                        },
                        dataType: "json" // <-- The default was "jsonp"
                    }
                },
            },
            dataTextField: "Parent.ChildProperty",
            dataValueField: "ABCD_PK"
        });

グリッドのモデルを定義するときにも同様の問題が発生します

 var model = {
        id: "ABCD_PK",
        fields: {
            Parent.Child.ChilProperty: 
                }
             }
4

1 に答える 1

1

最初の質問に答えるには: ここでオブジェクトを作成するとエラーが発生する場合は、optionLabel を文字列として使用します。

optionLabel: "--- Select ---",

ここでは JSFiddle が動作しています: http://jsfiddle.net/a6Ek2/11/

2 番目の質問に答えるにはdataSource.schema、json を解析して複雑でないオブジェクトを探します。このトピックの詳細:ネストされた Json を使用して Kendo UI グリッドを設定するにはどうすればよいですか? . グリッド関係者は、複雑なデータ オブジェクトを操作しません。しかし、試してみたい場合は、モデルで親オブジェクトのみを宣言します。

fields: {
    ABCD_PK: { editable: false },
    Parent: { editable: true },
}

それでも問題が解決しない場合は、この JSFiddle を更新して、これがどこにあるかを正確に示してください。それから私は私の答えを改善しようとします。

于 2014-01-19T20:50:54.770 に答える