使用Telerik DataAccess,我有一個數字(1,0)字段在我的數據庫稱爲chkSomething歷史上用於確定一個複選框的狀態(你知道,三態一個)Telerik用於ASP.NET MVC使用CheckBox整數
0 - Unchecked
1 - Checked
2 - Neither Checked nor Unchecked
但Kendo複選框只是一個2狀態複選框。所以我想我可能只是延長了產品型號:
public partial class TripleCheckboxModel
{
private int _ID;
public int ID {
get { return this._ID; }
set { this._ID = value; }
}
private int _chkSomething;
public int ChkSomething {
get { return this._chkSomething; }
set { this._chkSomething = value; }
}
[NotMapped]
public bool BoolChkSomething {
get { return (this.ChkSomething == 1); }
set { this._chkSomething = (value) ? 1 : 0; }
}
}
這完全在客戶端的工作原理:
public ActionResult chk_Update([DataSourceRequest] DataSourceRequest request, TripleCheckboxModel updateItem)
{
TripleCheckboxModel originalItem = this.dbContext.TripleCheckboxModels.FirstOrDefault(q => q.ID == updateItem.ID);
// Here you can see the Issus
originalItem.BoolChkSomething = updateItem.BoolChkSomething;
this.dbContext.SaveChanges();
return ...
}
:切換複選框這樣一個後調用CRUD操作時
@(Html.Kendo().CheckBoxFor(m => m.BoolChkSomething)
然而
它不返回客戶選擇的實際狀態,而是加載項目時最初設置的狀態。我很難跟蹤這個問題,因爲看起來,當將JSON轉換回TripleCheckboxModel時,BoolChkSomething屬性中的setter不會被調用(或者在ChkSomething屬性被賦值時被覆蓋)。
有沒有一個(更容易)的方式來得到這個運行? (不更改數據庫,因爲它被另一個應用程序使用)
謝謝你這樣做,這樣它就無法工作。我轉向您的聲明,因爲它更加優雅,但不幸的是,這並不能解決問題,因爲一些屬性現在具有正確的值,有些屬性沒有,直接指向屬性的賦值順序。 –