我今天剛碰到同樣的問題。如果你的數據源設置爲匿名類型此症狀會出現:
void BindDataGrid()
{
var gridData = from cm in MyCollection
select new
{
UniqueId = cm.UniqueId,
Min = cm.SomeNumber ?? 0,
Max = cm.SomeOtherNumber ?? 0,
Description = cm.Description
};
this.myGrid.DataSource = gridData;
this.myGrid.DataBind();
}
的修復是建立網格使用類。就在那時能夠計算出的數據類型每個單元格,他們在UI變成可編輯:
public class MyGridViewModel
{
public Guid UniqueId { get; set; }
public int Min { get; set; }
public int Max { get; set; }
public string Description { get; set; }
}
void BindDataGrid()
{
var gridData = from cm in MyCollection
select new MyGridViewModel()
{
UniqueId = cm.UniqueId,
Min = cm.SomeNumber ?? 0,
Max = cm.SomeOtherNumber ?? 0,
Description = cm.Description
};
this.myGrid.DataSource = gridData;
this.myGrid.DataBind();
}
當您說「但是,我無法更改文本框內的值」,您的意思是說,您無法輸入單元格? – Metaller
是的。我無法輸入單元格。例如,當單元格內的原始值爲「1000」時,單擊編輯按鈕時,它會顯示「1000」內具有相同值的文本框版本。我無法編輯它。我無法輸入也無法更改。感謝您的迴應。 – Smiley
您是否設置了KeyFieldName網格的屬性?還要檢查你是否處理了RowUpdating之類的事件,或者如果你使用了數據源控件,那麼還有UpdateCommand。 – kolbasov