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
浙公网安备 33010602011771号