【问题标题】:Kendo multi select component passing placeholder as value剑道多选组件将占位符作为值传递
【发布时间】:2017-03-16 21:03:36
【问题描述】:

我有一个带有 Kendo UI MultiSelect 组件的表单,用于 ASP.NET MVC / Razor

@(Html.Kendo().MultiSelectFor(m => m.Ids)
                .Filter(FilterType.Contains)
                .AutoBind(true)
                .MinLength(3)
                .Delay(500)
                .DataTextField("Value")
                .DataValueField("Key")
                .Placeholder("Please fill")
                .DataSource(
                    ds => ds.Read(
                        r => r.Action("FillMultiSelect", "ReportsController", new { companyId = IdentityManager.CompanyID, search = string.Empty })
                        ).ServerFiltering(true)
                )
            )

用于过滤的 JavaScript:

var $ids = $("#Ids").data("kendoMultiSelect");

$ids.dataSource.transport.options.read.data = basicFilter($ids);

var basicFilter = function ($element) {
   return {
       companyId: self.form.getModel().CompanyId,
       search: $element.input.val()
   }
}

当我在“Ids”MultiSelect 处键入搜索文本时,传递给 ASP.NET MVC Action 的参数是元素的 placeholder 的值:

我的代码有什么问题?

【问题讨论】:

  • Obs.:我正在使用 Internet Explorer 11 进行测试。

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


【解决方案1】:

错误在于从MultiSelect 组件中检索值。我应该使用filter 对象中的filters 数组,由data 事件传递。正确的 JavaScript:

window.global.setDatasourceTransportFilter($("#Ids"), "kendoMultiSelect", basicFilter);

var basicFilter = function (e) {
   return {
       companyId: self.form.getModel().CompanyId,
       search: e.filter && e.filter.filters[0] ? e.filter.filters[0].value : ""
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2022-01-08
    相关资源
    最近更新 更多