本帖最后由 yyy252999822 于 2011-05-13 13:57:27 编辑

解决方案 »

  1.   

    绑定了吗?绑定的列是否布尔类型值?
    请参考:
    http://blog.csdn.net/yangxiaofen1987/archive/2010/08/13/5809317.aspx
      

  2.   

    你要实现的效果我知道,但是不是那样做的,要从数据源考虑,而不是界面上添加,你那个是无法将数据保存下来的结果,下面是我写的代码: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;
    }
      

  3.   

    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";
            }
      

  4.   

    我只是让你保存到缓存里,那个DataTable就是一个缓存而已,没让你把勾选状态保存到数据库,不需要写数据库更新语句。
    你所谓的不能多选就是没有一个可以用来记录勾选状态的对象,现在用DataTable帮你记录这个状态,不要死脑筋啊。