0

HTML:

<select id="Catagories_CategoryId" data-bind="options: CategoryServiceTypes, 
    optionsText: 'Name',                        
    optionsCaption: 'Please select a Category...',                                        
    value: SelectedCategoryType">
</select>

以下のコードサンプルでは、​​グリッド内のアイテムを削除したばかりなので、次の方法でグリッドに再入力します。LoadServiceTypesFromSvc()

obj.SelectedCategoryTypeHolder(obj.SelectedCategoryType()); //copy the old selected object
pager.LoadServiceTypesFromSvc(); //repop
ko.utils.arrayForEach(obj.CategoryServiceTypes(), function(data) {                                                        
    if (data.CategoryId() == obj.SelectedCategoryTypeHolder().CategoryId()) {
        obj.SelectedCategoryType(data);
        alert('selected ' + obj.SelectedCategoryType().Name()); //shows the name of the item I'm aiming for
    }
});

LoadServiceTypesFromSvc()また、選択を再入力しました。選択した選択値をデータ更新前の値に設定したい。

アラートはobj.SelectedCategoryType()が設定したいものに設定されていることを確認しますが、select自体は変更されず、デフォルトの「PleaseSelect...」の最初の項目が表示されます。

私は何が欠けていますか?

どうもありがとう

4

1 に答える 1

1

.done 関数の LoadServiceTypesFromSvc() によって返されるすべてのアイテムに対して ko.utils.arrayForEach(...) ブロックを実行します

于 2013-03-14T20:49:00.993 に答える