是否可以在Kendo.Mvc.UI.Fluent.MultiSelectBuilder中指定schema.data

时间:2013-08-22 20:53:23

标签: multi-select kendo-asp.net-mvc

使用服务器端过滤,我想响应来自kendo 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;
}

谢谢!

1 个答案:

答案 0 :(得分:0)

来自Telerik技术支持,

  

一般来说,MultiSelect MVC不支持此功能   包装器及其dataSource总是需要一个集合,但可以   通过覆盖reader.data函数来实现,例如

multiselect.dataSource.reader.data = function (data) { return data.values};