0

サーバー側のフィルタリングを使用して、剣道 MultiSelect ウィジェットからの各リクエストに、ドロップダウン リストに列挙されるデータ項目を含む複数のプロパティで構成されるオブジェクトで応答したいと考えています。

schema.dataを指定する必要があるようです。しかし、MVC ラッパーを使用してschema.dataを指定する方法がわかりません。これは可能ですか、それとも別の方法がありますか?

これが私のカスタム MultiSelectBuilder コードです。

MultiSelectBuilder BuildSelector(HubAssemblyFieldEnums.FilterFields field, string placeHolder, string dataValueField, string dataTextField = default(string), string itemTemplate = default(string), string tagTemplate = default(string)) {
    var name = System.Enum.GetName(typeof(HubAssemblyFieldEnums.FilterFields), field);
    var multiSelect = Html.Kendo().MultiSelect()
                    .Name(name)
                    .Placeholder(placeHolder)
                    .HighlightFirst(true)
                    .Filter(FilterType.Contains)
                    .AutoBind(false)
                    .DataSource(_ => _.Read(read => {
                        read.Action("getFilterValues", "api/hubassembly")
                            .Type(HttpVerbs.Post)
                            .Data("function(e) { return getFilters(e, filterEnum." + name + "); }");
                    })
                    .ServerFiltering(true));

    if (dataValueField != default(string)) { multiSelect.DataValueField(dataValueField); }
    if (dataTextField != default(string)) { multiSelect.DataTextField(dataTextField); }
    if (itemTemplate != default(string)) { multiSelect.ItemTemplate(itemTemplate); }
    if (tagTemplate != default(string)) { multiSelect.TagTemplate(tagTemplate); }
    return multiSelect;
}

ありがとう!

4

1 に答える 1

0

Telerik テクニカル サポートから、

一般的に言えば、これは MultiSelect MVC ラッパーではサポートされておらず、その dataSource は常にコレクションを想定していますが、reader.data 関数をオーバーライドすることで実現できます。

multiselect.dataSource.reader.data = function (data) { return data.values};
于 2013-08-23T17:02:07.850 に答える