CheckEdit как столбец XtraGrid - PullRequest
0 голосов
/ 19 июня 2011
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 дней

Ответы [ 3 ]

3 голосов
/ 19 июня 2011

Использовать конструктор gridview. Перейти к столбцам, выберите столбец, который вы хотите проверить. Перейдите в ColumnEdit и выберите флажок. Тогда вы действительно сможете проверить несколько строк для этого редактора. Multiselect (выбор нескольких строк одновременно) находится в OptionsBehavior, я думаю. Когда я на работе (завтра), я могу предоставить вам образец. Это не может быть очень сложно, это точно.

1 голос
/ 19 июня 2011

Проблема возникает потому, что столбец помечен как несвязанный.В этом случае GridView генерирует событие CustomUnboundColumnData , которое можно использовать для предоставления данных в этот столбец и их сохранения.Я думаю, что вы должны обработать это событие, чтобы решить исходную проблему.

0 голосов
/ 03 октября 2014

В GridDesigner для CheckEdit установите для свойства «NullStyle» значение «Не проверено», а для столбца, который вы собираетесь использовать для CheckEdit, для свойства «FieldName» укажите имя вашего столбца в datatable (я использовал «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", "");

Чем это должно работать. Я надеюсь, что это решение вашей проблемы. Спасибо.

...