在模型中我有long?
字段,我喜歡使用Kendo MultiSelect。這個選擇的主要原因是server-side filtering
。它不反映當前模型的值,也不會將任何值發送到服務器。通過檢查流量,我相信它不會更新模型的價值。模型綁定失敗,使用Kendo MultiSelect
@(Html.Kendo().MultiSelectFor(x => x.theField)
.Name("msname")
.MaxSelectedItems(1)
.Placeholder("")
.HighlightFirst(true)
.DataValueField("Id")
.DataTextField("Text")
.AutoBind(true)
.DataSource(ds =>
ds.Read(" ", "API").ServerFiltering(true))
.Value(new long?[] { Model.theField})
)
我可以把一個隱藏的領域,並更新其價值或multiselect的變化,但應該有一個更好的解決方案。
我應該注意到,這個多重選擇是在一個編輯器模板中,由彈出編輯器中的Kendo Grid使用。
UPDATE
當使用nullable
類型,你需要使用ValuePrimitive(true)
!所以,最終的代碼是:
@(Html.Kendo().MultiSelectFor(x => x.theField)
.MaxSelectedItems(1)
.Placeholder("")
.HighlightFirst(true)
.DataValueField("Id")
.DataTextField("Text")
.AutoBind(true)
.DataSource(ds =>
ds.Read(" ", "API").ServerFiltering(true))
.ValuePrimitive(true)
)
我無法理解你的問題,你可以做一個小樣本項目,重現你目前的情況?也許它會啓發我找到解決方案.. –
感謝您的努力Dion,問題是,如果模型的字段'theField'目前是'null',我無法改變它,這兩個控件都不會更新它的值。但如果它已經有一些價值,我可以改變它,兩個控件都會更新它。不幸的是,我無法提供樣品。 – Akbari
1分鐘請迪翁,我想我得到了問題,這可能是因爲類型的差異,多選擇的數據是不可空的。 – Akbari