1

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

顺便说一句,我正在使用 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)   
      )
4

3 回答 3

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

于 2013-11-01T16:14:02.220 回答
0

.AutoBind(false)是原因,我们必须将其设置true为在初始化时设置一些值。另外,.MinLength(3)可能会限制服务器调用,希望其慎重。

于 2013-11-01T15:36:40.123 回答
0

是的,自动绑定与在页面加载时预先选择多选值无关。

要将多选与绑定的数据源进行预选,

我们需要调用一个操作方法,该方法又返回一个 List items = new List(); 类型的列表。

在 UI 方面,我们需要这样调用:

.Value(Model.Getsources)

这里 Getsources 是控制器中返回值列表的方法。

于 2014-06-02T11:55:35.657 回答