私は現在、大きなアプリケーションで使用する剣道 ui を評価しています。ドロップダウンに多くの値 (200 以上など) があり、そのサイズのドロップダウンが複数ある状況があります。したがって、複雑なフォームがある場合。ページの読み込みでは、フォームのレンダリングに時間がかかります。(そのため、各ボックスをサービスからロードしていっぱいにする必要があります)。
kendo ui のドロップダウン リストにオンデマンド サポート (autoBind プロパティなど) を備えた独自の asp.net Web コントロールを作成することで、これを回避しました。
現在、KendoUI の DropDownList は autobind = false で目的を果たしていますが、値を設定すると、最初にリモート バインディングからデータが取得され、次に適切な値が選択されます。(これはクールで、小さなリストには非常に適しています) しかし、ページをロードして値を設定すると、ドロップダウンごとにリモート バインディング呼び出しが発行される可能性があります。
今、
リモートバインディングを発行せずに値/テキストを表示するように設定できますか? ユーザーがドロップダウン自体をクリックした場合にのみ、リモート バインドが実行されるようにします。(フォームに記入しているときではありません)。これにより、システムへの余分な呼び出しが節約され、フォームをユーザーにすばやくレンダリングするのに役立ちます。
ここにJSビンがあります
http://jsbin.com/ayivad/3/edit
剣道UIの誰かが私に手伝ってほしいと思ったら、私に知らせてください.
<input type="button" id="btnSet" value="Set Value (Click without clicking on DropDown" />
<br/><br/>
<select id="products"></select>
$(document).ready(function () {
$("#products").kendoDropDownList({
dataTextField: "ProductName",
dataValueField: "ProductID",
autoBind: false,
dataSource: {
transport: {
read: {
dataType: "jsonp",
url: "http://demos.kendoui.com/service/Products",
}
}
}
});
var combobox = $("#products").data("kendoDropDownList"),
setValue = function (e) {
if (e.type != "keypress" || kendo.keys.ENTER == e.keyCode)
combobox.value(3);
};
$("#btnSet").click(setValue);
});
ありがとう、リズ