Kendoui MVC Multiselect Wrapper没有初始值

时间:2013-11-01 14:07:39

标签: c# razor kendo-ui multi-select

尝试使用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)   
      )

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是控制器返回值列表的方法。