我想知道是否有任何條件來檢查單元格的值是否被編輯。 我可以用其他方式做到這一點(使用If value == value)bla bla..but但我需要寫很多東西來比較這些值..我需要另一種方法。檢查gridview單元格的值是否被編輯的條件?
感謝
我想知道是否有任何條件來檢查單元格的值是否被編輯。 我可以用其他方式做到這一點(使用If value == value)bla bla..but但我需要寫很多東西來比較這些值..我需要另一種方法。檢查gridview單元格的值是否被編輯的條件?
感謝
如果您正在使用一個對象的數據源的自定義對象/列表綁定工作。您可以定義一個基類,繼承它&標記你的對象髒象
public class ObjectBase
{
private bool _isDirty;
private bool _isNew = true;
protected void MarkDirty()
{
_isDirty = true;
}
protected void MarkAsNew()
{
_isNew = true;
}
public bool IsDirty
{
get { return _isDirty; }
}
}
那麼你的對象類裏面,你會繼承這個基類像
public class myClass:ObjectBase
{
public int Id {get; set;}
public string Name {get; set;}
}
Whenver你更新你的對象,將它們標記爲骯髒的表示層,那麼你檢查他們是在業務層一樣,如果是更新否則返回「不改變更新」
public static bool UpdateItem(Employee myEmployee)
{
if(myEmployee.IsDirty)
{
return myEmployeeDB.UpdateItem(myEmployee);
}
}
heh這麼多的代碼,我只是要求一個簡單的說明來檢查是否編輯過單元格 – 2012-03-06 12:02:02
DataGridVie髒wCell不會跟蹤更改。如果您需要知道只有一個單元格的值已更改,請使用CellValueChanged事件並在那裏執行您的操作。如果您需要知道哪些細胞已被修改,所以你可以列舉出來,做是必要的,試試這個:
HashSet<DataGridViewCell> changedCells = new HashSet<DataGridViewCell>();
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = sender as DataGridView;
if (!changedCells.Contains(dgv[e.ColumnIndex, e.RowIndex]))
{
changedCells.Add(dgv[e.ColumnIndex, e.RowIndex]);
}
}
不要忘了勾的DataGridView的CellValueChanged事件。當您需要更改單元列表時,請執行以下操作:
foreach (DataGridViewCell cell in changedCells)
{
// Your work here
}
這僅適用於UI級別。如果你的數據被代碼改變了,你將需要不同的方法。
hmm,cellvalue的改變無法找到庫中用到了什麼? – 2012-03-06 12:36:33
我的不好,我假設(但錯誤地)平臺之間的相同功能。這只是WinForms,對不起。 – 2012-03-06 12:58:27
uff,在asp.net中這樣做的任何方式? – 2012-03-06 13:02:44
您使用的是自定義對象還是數據表? – 2012-03-06 11:47:55
我正在使用gridview – 2012-03-06 11:48:44
您需要在客戶端執行此操作還是在回發時檢查數據庫? – Kaf 2012-03-06 11:52:32