3

私は現在、大きなアプリケーションで使用する剣道 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);
    });

ありがとう、リズ

4

1 に答える 1

5

1) 値の代わりにテキストを設定: http ://docs.kendoui.c​​om/api/web/dropdownlist#configuration-text

Kendo: text 文字列(デフォルト: "") autoBind が false に設定されている場合、ウィジェットのテキストを定義します。例

$("#dropdownlist").kendoDropDownList({
     autoBind: false,
     text: "Chai"
});

汚い代替手段 - 必要に応じて ddl の「オプションのラベル」をハイジャックしてみてください。ddl で表示する値を含むページのデータをロードし、表示する値に等しいオプションの値で ddl を初期化します。ユーザーが ddl を開くと、リモート データが読み込まれます。データが読み込まれると、オプションのラベルと幸せな日を上書き/削除します。 http://docs.kendoui.c​​om /api/web/dropdownlist#configuration-optionLabel (リストを分割することを検討してください。200 の長さのドロップダウンはユーザーフレンドリーとはほど遠いものです。)

$("#dropdownlist").kendoDropDownList({
optionLabel: "My value" });

また、Kendo ComboBox の使用を検討してください。200 個のアイテムの場合、3 文字程度の後にオートコンプリートするのは非常に賢明な解決策です。500 + コンボボックスにも同じソリューションを使用します。

于 2013-05-30T15:18:17.223 に答える