DEV 中 gridControl1添加checkbox 列

直接在 gridControl1.DataSource要綁定的表裏dt增加一個BOOL列dt.Columns.Add("isCheck", System.Type.GetType("System.Boolean")).SetOrdinal(0);即可。但是記得gridControl1需要綁定isCheck列,才能顯示出複選框。

設置爲多選:
gridView1 .OptionsSelection.MultiSelect = true;
gridView1 .OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;

但是這樣有一個BUG。就是不能馬上捕捉複選框的改變事件。只能通過gridView1_CellValueChanged等來捕捉,但是有時候我們需要改變的時候就馬上捕捉。



我們對之前的改造:

gridControl增加一個編輯列,把編輯列設置爲複選框


然後在頁面加載的時候把這個的改變事件加入:

private void InitCheckItems()
        {
            repositoryItemCheckEdit1.CheckedChanged += new EventHandler(repositoryItemCheckEdit1_CheckedChanged);
        }
        void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
        {
            CheckState check = (sender as DevExpress.XtraEditors.CheckEdit).CheckState;
            if (check == CheckState.Checked)
            {
                你自己要處理的事件
            }
        }

即可。



上面那樣的代碼,我們可以實現動態的選擇。但是有一個小BUG,就是當我們點擊選擇的時候需要點擊2次才能是選中狀態。但是這樣用戶體驗度極差!

我們需要在這裏改造一下:

在給數據源添加BOOL列的時候,需要循環給該列賦值

foreach (DataRow _Dr in DtUnit.Rows)
                _Dr["isCheck"] = false;

然後把屬性EditorShowMode = MouseDown即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章