DataSource.Read阻止Kendo ComboBox的BindTo

时间:2018-09-27 12:55:46

标签: asp.net-mvc kendo-ui

由于某些原因,当我在MVC中设置Kendo ComboBox时,我的READ ACTION DATA SOURCE没有绑定到基础数据集。

我要做什么?

  • 当“视图模型”列表中有记录时...绑定到列表
  • 当用户输入值时...进行Ajax调用...并绑定到结果

问题
显然,当您同时配置BindToDataSource.Read Action时,绑定将被忽略。

我怎么知道这个?

  • 当我在READ ACTION中放置一个断点并查看客户端dataSource._data集合时,它是空的
  • 当我注释掉READ时...绑定起作用...但是这样做需要我手动配置READ

此标记失败:
因为...

  • 尽管如此,读取会立即发生(这本身就有问题)
  • BIND被忽略


@(Html.Kendo().ComboBoxFor(model => model.Entity.PrimaryCircuitConnectId)
      .Placeholder("Enter a Circuit Path...")
      .BindTo(new SelectList(Model.PrimaryCircuitConnectDetails, "CircuitConnectId", "CircuitConnectValue"))
      .MinLength(4)
      .Filter("startswith")
      .DataSource(source => source.Read(read => read.Action("find", "CircuitConnectDetail", new { area = "" })))
      .HtmlAttributes(new { style = "width:100%;" }))

此标记失败:
因为...

  • 必须手动创建READ客户端
  • 尽管如此,BIND还是很荣幸


@(Html.Kendo().ComboBoxFor(model => model.Entity.PrimaryCircuitConnectId)
      .Placeholder("Enter a Circuit Path...")
      .BindTo(new SelectList(Model.PrimaryCircuitConnectDetails, "CircuitConnectId", "CircuitConnectValue"))
      .MinLength(4)
      .Filter("startswith")
      //.DataSource(source => source.Read(read => read.Action("find", "CircuitConnectDetail", new { area = "" })))
      .HtmlAttributes(new { style = "width:100%;" }))

是的,有记录:
enter image description here

1 个答案:

答案 0 :(得分:1)

是的,确实BindTo和DataSource选项专用于不同的绑定-如documentation article中所述,BindTo应该用于本地数据,而DataSoruce用于远程数据。当前不建议在一种情况下同时使用它们。