DevExpress 中控件gridControl1的使用 本帖最后由 yyy252999822 于 2011-05-13 13:57:27 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 绑定了吗?绑定的列是否布尔类型值?请参考:http://blog.csdn.net/yangxiaofen1987/archive/2010/08/13/5809317.aspx 你要实现的效果我知道,但是不是那样做的,要从数据源考虑,而不是界面上添加,你那个是无法将数据保存下来的结果,下面是我写的代码:DataTable dt = (DataTable)gridControl1.DataSource;dt.Columns.Add(new DataColumn("Check", typeof(bool)) { AllowDBNull = false, DefaultValue = false });if (gridControl1.MainView.GetType() == typeof(GridView)){ GridView gridview = gridControl1.MainView as GridView; gridview.OptionsBehavior.Editable = true; //注意,这里将所有列设置为不可编辑,仅留下新增的勾选列运行编辑,如有特例,单独开启列编辑。 foreach (GridColumn gcol in gridview.Columns) { gcol.OptionsColumn.AllowEdit = false; } GridColumn col = gridview.Columns.Insert(0); col.Name = "Check"; col.FieldName = "Check"; col.Caption = "选择"; col.Width = 52; col.Visible = true; col.OptionsColumn.AllowEdit = true; col.OptionsColumn.AllowSize = false; col.OptionsColumn.AllowMove = false; col.OptionsColumn.AllowIncrementalSearch = false; col.OptionsFilter.AllowFilter = false; col.Fixed = FixedStyle.Left;} DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit cke = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();setCheckEdit(gv_clist.Columns["选择"]);private void setCheckEdit(DevExpress.XtraGrid.Columns.GridColumn column) { column.ColumnEdit = cke; cke.AllowGrayed = false; cke.ValueGrayed = "0"; cke.ValueChecked = "1"; cke.ValueUnchecked = "0"; } 我只是让你保存到缓存里,那个DataTable就是一个缓存而已,没让你把勾选状态保存到数据库,不需要写数据库更新语句。你所谓的不能多选就是没有一个可以用来记录勾选状态的对象,现在用DataTable帮你记录这个状态,不要死脑筋啊。 线程与锁的疑问; 大家有没有发现用GDI+旋转图像,无论抗锯齿设置与否,至少有一个边缘是不抗锯齿的啊。 关于swf存在临时文件(缓存) 那位大侠指导一下怎么用 jmail 根据datagridview宽度增加多余的空白列 C# form窗体实现用户名和密码验证问题 sql参数为什么传不过来! 怎么给生成的exe设置图标和更改文字 Timer的Elapsed中抛出异常,谁来接? 从vb,vc-以后可能要出的F#,微软这种搞法行吗? 线程中,如何调用含有窗体的dll? ASP.NET MVC 集成验证问题
请参考:
http://blog.csdn.net/yangxiaofen1987/archive/2010/08/13/5809317.aspx
dt.Columns.Add(new DataColumn("Check", typeof(bool)) { AllowDBNull = false, DefaultValue = false });if (gridControl1.MainView.GetType() == typeof(GridView))
{
GridView gridview = gridControl1.MainView as GridView;
gridview.OptionsBehavior.Editable = true;
//注意,这里将所有列设置为不可编辑,仅留下新增的勾选列运行编辑,如有特例,单独开启列编辑。
foreach (GridColumn gcol in gridview.Columns)
{
gcol.OptionsColumn.AllowEdit = false;
}
GridColumn col = gridview.Columns.Insert(0);
col.Name = "Check";
col.FieldName = "Check";
col.Caption = "选择";
col.Width = 52;
col.Visible = true;
col.OptionsColumn.AllowEdit = true;
col.OptionsColumn.AllowSize = false;
col.OptionsColumn.AllowMove = false;
col.OptionsColumn.AllowIncrementalSearch = false;
col.OptionsFilter.AllowFilter = false;
col.Fixed = FixedStyle.Left;
}
{ column.ColumnEdit = cke;
cke.AllowGrayed = false;
cke.ValueGrayed = "0";
cke.ValueChecked = "1";
cke.ValueUnchecked = "0";
}
你所谓的不能多选就是没有一个可以用来记录勾选状态的对象,现在用DataTable帮你记录这个状态,不要死脑筋啊。