日期:2014-05-18  浏览次数:21056 次

DevExpress 中控件gridControl1的使用
gridControl1给绑定数据后,

我写了个方法,给gridControl1的gridView1中加了一列 checkEdit

方法如下:

 public void gridv(GridView gv)
  {
  if (gv.RowCount > 0)
  {
  GridColumn gc ;
  gc = gv.Columns.AddField("checket");
  gc.Name="checket";
  gc.Caption = "请选择!";
  gc.VisibleIndex = 0;
  gc.UnboundType = DevExpress.Data.UnboundColumnType.Boolean;
  }
  }

运行结果 :成功 !!!

  checkEdit id name
  ? 1 a
  2 b
但是 里面checkEdit 只能单选,也就是说,只能选择一个 ,如果在选择第二个,那么第一的勾就被取消掉了!

我用 这种方法gv.SetRowCellValue(i, gridView1.Columns[cl-1], "true"); 给他赋值,也没有效果!

我要怎么才能实现多选效果呢?

帮帮忙谢谢了!!

------解决方案--------------------
绑定了吗?绑定的列是否布尔类型值?
请参考:
http://blog.csdn.net/yangxiaofen1987/archive/2010/08/13/5809317.aspx
------解决方案--------------------
你要实现的效果我知道,但是不是那样做的,要从数据源考虑,而不是界面上添加,你那个是无法将数据保存下来的结果,下面是我写的代码:
C# code

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";
}
------解决方案--------------------
探讨
我不需要保存数据呀?

只是想实现,用户选了那几行!