Kendo 多 select 组件传递占位符作为值
Kendo multi select component passing placeholder as value
我有一个带有 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 的参数是 元素的占位符:
我的代码有什么问题?
从 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 : ""
}
}
我有一个带有 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 的参数是 元素的占位符:
我的代码有什么问题?
从 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 : ""
}
}