【问题标题】:Is it possible to know if a Telerik MVC Combobox value is a new or existing value?是否可以知道 Telerik MVC Combobox 值是新值还是现有值?
【发布时间】:2015-10-16 14:09:17
【问题描述】:

在我们的 Asp.net MVC 应用程序中,我们希望放入一个组合框,该组合框提供用户之前输入的多个位置,但也允许他们输入新的位置名称。当用户输入一个新的位置名称时,我们需要将它们带到另一个表单,以便我们可以将该位置添加到数据库中,如果他们选择了一个预先存在的位置,那么我们需要获取该位置的 id 并将其绑定到核心域实体他们当时正在编辑。

问题在于在http://demos.telerik.com/aspnet-mvc/combobox/api 玩了演示之后,似乎没有办法知道记录是新的还是现有的。

例如,在该链接中,如果您从下拉列表中选择“黑暗骑士”并单击获取值按钮,您将获得“7”。但是,如果您还在下拉框中键入“7”,您也会得到“7”的值。

有没有办法知道我在框中输入了数字 7(这是一个新条目),而不是用户实际选择了值为 7 的选项?

我能想到的唯一方法是检查值是否等于文本,如果是,则将其视为一个新选项,但这似乎很脆弱,我感觉只有值会被重新发布表单提交。

【问题讨论】:

    标签: c# asp.net-mvc telerik


    【解决方案1】:

    确定组合框中所选值是否是原始数据绑定项的一部分的最快捷、最简单的方法是:

    $('#movies').getKendoComboBox().dataItem()
    

    如果它没有返回数据项(即它是undefined),那么数据源中不存在该值。

    你也可以使用:

    $('#movies').getKendoComboBox().select()
    

    返回-1

    还值得注意的是,您实际上并没有在此处向 DataSource 添加新项目。

    如果是,您将能够返回正确的 ComboBox dataItem 并在模型中使用方法 isNew

    我建议您阅读Kendo DataSourceModel(尤其是isNew method)上的文档

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 2016-09-13
      相关资源
      最近更新 更多