2017-02-14 6 views
1

剣道UIコンボボックスのデータソースを変更すると、ドロップダウン内のすべての値が未定義値を示します。私たちはマルチセレクトでも同じことをやっていますし、うまくいきます。私たちが紛失しているものがあるのか​​、それともコントロールのバグでしょうか。私たちはいくつかのバージョンを試してみましたが、すべて同じ問題を示しています。私たちのデータソース構造は変更されるので、表示テキストとデータ値を変更する必要があります。データソースを変更したときの剣道UIコンボボックスの未定義値

//Sample code we are doing when we change the data source. 
var combo = $("#fabric").data("kendoComboBox"); 
combo.setDataSource([ 
    { text2: "test1", value2: "1" }, 
    { text2: "test2", value2: "2" } 
]); 
combo.setOptions({dataTextField: "text2",dataValueField: "value2"}); 
combo.refresh(); 

See example here

  • 変更データソースボタンをクリックして、最初のコンボの値を見てください。
  • ドロップダウンすべてsetOptionsドキュメントを教えてくれるのだから、最初、このメソッドの実装は、各ウィジェットごとに変化

答えて

0

...未定義の値を示しているが、我々はリストで1を選択したときに、それが適切に示しています http://docs.telerik.com/kendo-ui/api/javascript/ui/widget#methods-setOptions

基本的に、setOptionsは、ウィジェットの設定に対する基本的な変更(数値入力の場合は "min"、 "max"など)をサポートしているだけで、ウィジェットごとに異なります。残念ながら、ウィジェットのどのプロパティを変更できるか、どのウィジェットのプロパティを変更できないかを知る方法はありません。

ウィジェットのデータソースを変更する(またはグリッドウィジェットの列を変更するなど)場合は、ウィジェット全体を再作成することをお勧めします。これは唯一の信頼できる方法です。なぜなら、私たちが気づいていない舞台裏では多くの魔法が起こりうるからです。

入力から値をクリアするには、項目の選択を解除する必要があります。その後、ウィジェットを破棄し、新しい設定で入力に再度フックします。

$("#get").click(function() { 

    var combo = $("#fabric").data("kendoComboBox"); 
    combo.select(-1); 
    combo.destroy(); 

    $("#fabric").kendoComboBox({ 
     dataTextField: "text2", 
     dataValueField: "value2", 
     dataSource: [ 
      { text2: "test1", value2: "1" }, 
      { text2: "test2", value2: "2" } 
     ] 
    }); 

}); 
+0

私たちはアウレリア剣道UIブリッジを使用しているので、破壊したり再作成しないように可能な限り努力していました。この場合、破壊は単純に機能しません。私たちは、剣道の橋の要素のリファレンスにrecreate()を呼び出しました。私たちのコントローラーでは、kDataTextField、kDataValueField、およびkDataSourceを変更し、コントロール参照でrecreate()を呼び出します。魅力のように動作します。 –

関連する問題