0

クライアントイベントをtelerikドロップダウンリストに追加しようとしていますが、そうすると静的になります。静的とは、ドロップダウンリストとして動作しなくなったことを意味します。クリックしても応答しないため、値を表示/選択できません。しかし、ドロップダウンリストをコンボボックスに変更するとすぐに、完全に正常に機能します。クリックして値を表示/選択できます。

なぜこうなった?クライアントイベントをtelerikコンボボックスに追加できるのにtelerikドロップダウンリストには追加できないのはなぜですか?

コンボボックスにデータを入力する方法は次のとおりです。

        <%= Html.Telerik().ComboBox().Name("ComboBox")
            .HtmlAttributes(new { @id = "ComboBox", @style = "width:104px;" })
            .ClientEvents(events =>
        {
            events.OnDataBinding("ComboBox_onDataBinding");
        })%>  

function ComboBox_onDataBinding(e) {
    var comboBox = $('#ComboBox').data('tComboBox');
                comboBox.dataBind([
                    { Text: "Product 1", Value: "1" },
                    { Text: "Product 2", Value: "2", Selected: true },
                    { Text: "Product 3", Value: "3" },
                    { Text: "Product 4", Value: "4" },
                    { Text: "Product 5", Value: "5" }
                ], true);
};

ドロップダウンリストにデータを入力する方法は次のとおりです。

        <%= Html.Telerik().DropDownList().Name("DropDownList")
            .HtmlAttributes(new { @id = "DropDownList", @style = "width:104px;" })
            .ClientEvents(events =>
        {
            events.OnDataBinding("DropDownList_onDataBinding");
        })%>  

function DropDownList_onDataBinding(e) {
    var dropDownList = $('#DropDownList').data('tDropDownList');
                dropDownList.dataBind([
                    { Text: "Product 1", Value: "1" },
                    { Text: "Product 2", Value: "2", Selected: true },
                    { Text: "Product 3", Value: "3" },
                    { Text: "Product 4", Value: "4" },
                    { Text: "Product 5", Value: "5" }
                ], true);
};

前もって感謝します。

4

2 に答える 2

1

あなたの場合、AjaxまたはWebServiceクライアント側のデータバインディングを使用しないときは、OnDataBindingイベントハンドラーを構成しないでください。代わりにOnLoadを構成する必要があります。

.ClientEvents(events => events.OnLoad("ddl_onLoad").OnChange("ddl_onChange")

ハンドラー:

function ddl_onLoad(e) {

    var ddl = $(this).data('tDropDownList');

    ddl.dataBind([
        { Text: 'Product 1', Value: '1' },
        { Text: 'Product 2', Value: '2', Selected: true },
        { Text: 'Product 3', Value: '3' },
        { Text: 'Product 4', Value: '4' }
    ], true);
}

function ddl_onChange(e) {

    //var ddl = $(this).data('tDropDownList');
    console.log(e.value);
}
于 2012-11-01T22:25:17.503 に答える
0

ハンドラー.dataBind()内で呼び出しているので、イベントが何度もトリガーされます...OnDataBindingOnDataBinding

OnLoadイベント内などでクライアント側のデータバインディングを行うことを検討してください

于 2012-10-30T18:43:20.427 に答える