devexpress gridControl 部分行能编辑,部分行不能编辑的实现

GirdControl 中有两列,一列是ID,一列是Name ,Name列中有内置的checkBox控件,当ID为1时,Name 列不能打勾,当ID不为1时,Name才能打勾,

需要在Name列的CellValueChanging中实现,事件代码如下 DEMO使用的DEV7.2

private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]{
new DataColumn("ID"),
new DataColumn("NAME")
});

for (int i = 0; i < 10; i++)
{
DataRow dr= dt.NewRow();
dr["ID"] = i;
dr["NAME"] = 0;
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
}


private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column == gridView1.Columns[1])
{
if (e.Value.ToString() == "1"  //为1时表示打勾
&& gridView1.GetDataRow(gridView1.FocusedRowHandle)["ID"].ToString() == "1") //当ID列为1时,并且新的Name 将要为1
{

//一下两行很重要
gridView1.CancelUpdateCurrentRow(); 
gridView1.RefreshData();
}
}
}

 源码地址:https://files.cnblogs.com/Dunk/DevGridConntrol%E9%83%A8%E5%88%86%E8%A1%8C%E5%8F%AF%E4%BB%A5%E5%8B%BE%E9%80%89.7z

posted on 2014-06-19 20:08  Dunk  阅读(888)  评论(0)    收藏  举报

导航