2015-10-16 50 views
1

在我們的Asp.net MVC應用程序中,我們希望放入一個組合框,提供用戶以前輸入的幾個位置,但也允許他們鍵入一個新的位置名稱。當用戶輸入新的位置名稱時,我們需要將它們帶到另一個表單,以便我們可以將該位置添加到數據庫,如果他們選擇了預先存在的位置,那麼我們需要獲取該位置的ID並將其綁定到核心域實體他們正在編輯。是否有可能知道Telerik MVC Combobox值是新值還是現值?

這個問題是在玩了http://demos.telerik.com/aspnet-mvc/combobox/api的演示之後,似乎沒有辦法知道記錄是新的還是現有的。

例如,在該鏈接中,如果您從下拉列表中選擇「The Dark Knight」,然後單擊get value按鈕,您將得到「7」。但是,如果您還在下拉框中鍵入「7」,您也會得到「7」的值。

有沒有什麼辦法知道我在盒子裏輸入了7號數字(而且這是一個新條目),而不是用戶實際選擇值爲7的選項?

我能想到的唯一方法是檢查值是否等於文本,如果是這樣認爲它是一個新的選項,但這似乎很脆弱,我有一種感覺,只有價值會被貼回來在表格提交。

回答

2

,以確定是否在組合框中選擇的值是原始數據綁定項目的一部分,最快,最簡單的方法是:

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

如果不返回DataItem的(即它是undefined),那麼值不存在於dataSource中。

您還可以使用:

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

它返回-1

還值得注意的是,您實際上並未在此處向DataSource添加新項目。

如果是的話,您可以在模型中返回正確的ComboBox dataItem並使用方法isNew

我建議你讀了Kendo DataSourceModel的文檔(特別是isNew method

相關問題