尝试使用Multiselect kendoui小部件包装器。服务器端过滤工作正常但我无法获得在窗口小部件初始化时填充的初始值。你知道我在这里做错了吗?
<div class="container-div grid-tab-content-pane">
@(Html.Kendo().MultiSelect()
.Name(AMultiName)
.DataTextField("PrettyText")
.DataValueField("MapAbbreviation")
.Placeholder("Edit EMR maps...")
.Filter(FilterType.Contains)
.MinLength(3)
.AutoBind(false)
.HighlightFirst(true)
.Value(new []
{
new {PrettyText = "Abcdef",MapAbbreviation = "s01"},
new {PrettyText = "2nde obn", MapAbbreviation = "asdf012"}
})
.DataSource(ds => ds.Read(r=>r.Action("ReadMapOptions","EmrMappingKendo", new {Area="Messaging"})).ServerFiltering(true)).MinLength(3)
)
BTW我正在使用kendoui dll的版本2013.2.918.340
将autobind设置为false无效。
@(Html.Kendo().MultiSelect()
.Name(AMultiName)
.DataTextField("PrettyText")
.DataValueField("MapAbbreviation")
.Placeholder("Edit EMR maps...")
.AutoBind(true)
.Value(new []
{
new {PrettyText = "Abcdef",MapAbbreviation = "s01"},
new {PrettyText = "2nde obn", MapAbbreviation = "asdf012"}
})
.DataSource(ds => ds.Read(r=>r.Action("ReadMapOptions","EmrMappingKendo", new {Area="Messaging"})).ServerFiltering(true)).MinLength(3)
)
答案 0 :(得分:2)
出于某种原因,这是有效的。不确定为什么,但确实如此。
@(Html.Kendo().MultiSelect()
.Name(AMultiName)
.DataTextField("PrettyText")
.DataValueField("MapAbbreviation")
.Placeholder("Edit EMR maps...")
.Filter(FilterType.Contains).MinLength(3)
.AutoBind(false)
.DataSource(
ds => ds.Read(r=>r.Action("ReadMapOptions","EmrMappingKendo", new {Area="Messaging"})))
.Value(new List<EmrMapping>
{
new EmrMapping {PrettyText = "Abcdef",MapAbbreviation = "s01"},
new EmrMapping {PrettyText = "2nde obn", MapAbbreviation = "asdf012"}
})
)
遇到了这个指向我做Kendoui docs
的链接答案 1 :(得分:0)
.AutoBind(false)
是原因,我们必须设置它true
以在初始化时设置一些值。此外,.MinLength(3)
可能会限制服务器调用,希望它是故意的。
答案 2 :(得分:0)
是的,自动绑定与在页面加载时预选多个选择值无关。
要使用绑定的数据源预选多选,
我们需要调用一个action方法,该方法依次返回List items = new List();
类型的列表在UI方面我们需要像这样调用:
。价值(Model.Getsources)
这里的Getsources是控制器返回值列表的方法。