2016-05-18 1 views
1
function GenericSelectFirst(e){ 
    // This function is called without any errors, I have verified it 
    e.sender.select(0); 
} 

<select class="full-width" 

     name="..." 
     data-bind="source: ..., value: ..., visible: ..., events:{dataBound: Function.GenericSelectFirst}" 
     data-role="dropdownlist" 
     data-value-field="..." 
     data-text-field="..." 
     data-value-primitive="true" 
     data-auto-bind="true" 
     required="required" 
> 
</select> 

私はそのような一般的な簡単なシナリオを達成することは困難であるとは思いませんでしたが、私はMVVMのスタイルを使用して初期化剣道のDropDownListを持っており、それが結合されますリモートデータソース剣道MVVMドロップダウンリストを使用して最初の項目を選択する強制する方法

リモートデータソースが準備完了し、ウィジェットにバインドされたら、最初のオプションがデフォルトで選択されます(もちろん、最初の項目の値はビューモデルにバインドされる必要があります)

dataBoundイベントをウィジェットにバインドし、発生時に最初のアイテムを選択する上記のコードを使用して直接処理しようとしました。コールバックメソッドはエラーなしで呼び出されましたが、ウィジェットは最初のオプションを決して選択せず、最初のデフォルトの "空"オプションを選択し続けます。

私は何が間違っていましたか?どのように修正できますか?アドバイスありがとうございます!

答えて

0

剣道のバージョンは使用していますか?最新の場合、 V. Q1 2015以降、Html Selectの動作をより良く一致させ、MVVMバリューバインディングに関連する問題を解決するために、ドロップダウンリストでその値をクリアすることができます(選択した項目の選択を解除)。

選択したインデックスが-1の場合、ウィジェットは最初のアイテムを選択しません 選択された値がデータソースに存在しない場合、ウィジェットは最初のアイテムを選択しません

かいつまんで、誰かが以前の動作を取得したい場合は、彼/彼女は手動で最初の項目を選択する必要があります:

dataBound: function() { 
    if (this.select() === -1) { //check whether any item is selected 
     this.select(0); 
     this.trigger("change"); 
    } 
    } 
関連する問題