我想知道是否有任何条件来检查单元格的值是否被编辑。 我可以用其他方式做到这一点(使用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