【问题标题】:Kendo UI: Get MultiSelect selected values as a comma separated stringKendo UI:将 MultiSelect 选定值作为逗号分隔的字符串获取
【发布时间】:2014-08-06 11:32:46
【问题描述】:

如果有人可以帮助解决我的问题,我将不胜感激。 我有一个字段 PAYMENT_CURRENCIESstring 类型的实体,它应该存储逗号分隔值,即“USD,EUR,AED”(或任何其他分隔字符)。 在我看来:

 @Html.Kendo().MultiSelectFor(model => model.Contract.PAYMENT_CURRENCIES).BindTo(context.Currencies).DataTextField("CODE").DataValueField("CODE").Placeholder("Add currency...")

问题是当我提交表单时,我只收到Controller 中的第一个选定值。 我不想更改 IEnumerable 字段的数据类型。

有没有办法将所有选定的值作为带有分隔符的字符串接收?

非常感谢

【问题讨论】:

  • 您的问题的替代方法是更新模型值更改事件,该事件以您需要的格式(即逗号分隔)提供所选值,但您需要再次设置它们以查看现有模型。
  • 请看一下这个 Multiselect 基本用法示例demos.telerik.com/kendo-ui/multiselect/index 它显示了将选定选项作为逗号分隔字符串的方法

标签: c# asp.net-mvc kendo-ui kendo-asp.net-mvc kendo-multiselect


【解决方案1】:

我认为您不能自动将多选输入值转换为单个字符串。

所以你可以做的是:

  • 使用包含 List 的 viewModel (ContractViewModel)
  • 或使用 javascript 将您的输入值“转换”为单个字符串,并用您想要的任何分隔符分隔

【讨论】:

    【解决方案2】:

    我的需求和你一样,找不到合适的解决方案,我就是这样解决的:

    • 在您的 ViewModel public List<string> SelectedCurrencies { get; set; } 中创建一个新属性
    • 配置您的 MultiSelect Kendo 助手以绑定到新创建的属性 @Html.Kendo().MultiSelectFor(model => model.SelectedCurrencies) .BindTo(context.Currencies) .DataTextField("CODE") .DataValueField("CODE") .Placeholder("Add currency...")
    • 保存:现在,当您点击操作方法时,只需设置逗号分隔字段PAYMENT_CURRENCIES = string.Join(",", viewModel.SelectedCurrrencies);
    • 阅读: SelectedCurrencies = PAYMENT_CURRENCIES.Split(',').ToList();

    【讨论】:

      【解决方案3】:

      为你的模型添加一个数组属性:

      public string[] PAYMENT_CURRENCIES_LIST
      {
          get
          {
              return PAYMENT_CURRENCIES?.Split(',');
          }
          set
          {
              PAYMENT_CURRENCIES = string.Join(",", value);
          }
      }
      

      然后在你的视图中使用这个属性:

      @Html.Kendo().MultiSelectFor(model => model.Contract.PAYMENT_CURRENCIES)...
      

      因此,array-property 映射到 Kendo-Multiselect 并将值转换为原始字段/从原始字段转换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-02
        • 1970-01-01
        • 1970-01-01
        • 2012-05-19
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        相关资源
        最近更新 更多