是否有可能知道Telerik MVC组合框值是新值还是现有值?

本文关键字:新值 有可能 Telerik 组合 MVC 是否 | 更新日期: 2023-09-27 18:17:57

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

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

例如,在该链接中,如果你从下拉菜单中选择"The Dark Knight",然后点击获取值按钮,你会得到"7"。然而,如果你也在下拉框中输入"7",你也会得到"7"的值。

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

我能想到的唯一方法是检查值是否等于文本,如果是,考虑它是一个新的选项,但这似乎是脆弱的,我有一种感觉,只有值将被张贴回表单提交

是否有可能知道Telerik MVC组合框值是新值还是现有值?

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

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

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

你也可以使用:

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

返回-1

还值得注意的是,这里实际上并没有向数据源添加新项。

如果你是,你就可以返回一个适当的ComboBox dataItem,并在模型中使用isNew方法。

我建议你阅读Kendo数据源和模型(特别是isNew方法)的文档

相关文章: