0
edit = gridView1.GridControl.RepositoryItems.Add("CheckEdit") as RepositoryItemCheckEdit;
column = gridView1.Columns.Add();
column.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
column.VisibleIndex = 0;
column.FieldName = "CheckMarkSelection";
column.Caption = "Mark";
column.OptionsColumn.ShowCaption = false;
column.UnboundType = DevExpress.Data.UnboundColumnType.Boolean;
edit.NullStyle = StyleIndeterminate.Unchecked;
column.ColumnEdit = edit;

我想我成功地添加了一checkedit列,gridview但我仍然无法检查多行并且无法访问编辑的检查状态。为什么?我将不胜感激,因为我已经为此苦苦挣扎了 3 天

4

3 回答 3

3

使用gridview的设计器。转到列,选择您想要检查的列。转到 ColumnEdit 并选择一个检查编辑。然后你真的应该能够检查这个编辑器的多行。多选(同时选择多行)在我猜的 OptionsBehavior 中。当我(明天)上班时,我可以为您提供样品。可以肯定的是,这不会很困难。

于 2011-06-19T06:24:00.553 回答
1

出现问题是因为该列被标记为未绑定。在这种情况下,GridView 会生成CustomUnboundColumnData事件,该事件可用于向该列提供数据并保存它。我认为您应该处理此事件以解决原始问题。

于 2011-06-19T12:43:46.780 回答
0

在 GridDesigner 中,对于 CheckEdit,将“NullStyle”属性设置为“Unchecked”,对于要用于 CheckEdit 的列,将“FieldName”属性设置为数据表中列的名称(我使用了“col1”对于布尔值 true,false)。在 GridDesigner 中设置完所有内容后,您必须为列声明一个类型。例如,我使用了这样的代码;

public DataTable datas = new DataTable();

private void Form1_Load(object sender, EventArgs e)
    {
        datas.Columns.Add("col1", typeof(bool));
        datas.Columns.Add("col2", typeof(string));
        datas.Columns.Add("col3");
        gridControl.DataSource = datas;
    }

datas.Rows.Add(False, "someValue", "");
datas.Rows.Add(False, "someValue", "");
datas.Rows.Add(True, "someValue", "");
datas.Rows.Add(False, "someValue", "");

比它应该工作。我希望这是您问题的解决方案。谢谢。

于 2014-10-03T18:13:19.687 回答