DEV Gridview全选checkbox 和MultiSelection无缝结合

来源:互联网 发布:玻尔兹曼常数测量 知乎 编辑:程序博客网 时间:2024/06/05 08:47

1.首先,点击Run Desiger ,在COlunms 新添加一列,设置columnEDit为repositoryItemCheckEdit1,fieldname为check,MaxWidth设置为20。
2.在Gridview的OptionSelection 设置MultiSelect为 True。
3.添加实体类check字段,在获取数据后:为dataset添加一列:
DataSet ds = db.ExecuteDataSet(dbCommand);
ds.Tables[0].Columns.Add("Check", System.Type.GetType("System.Boolean"));
如果是list:
for (int i = 0; i < ds.Tables[0].Rows.Count - 1; i++)
            {
                SyncSplitQueue syncSplitQueue = new SyncSplitQueue();
                DataRow dr = ds.Tables[0].Rows[i]; 
                PopulateSyncSplitQueueFromIDataRow(dr, syncSplitQueue);
                list.Add(syncSplitQueue);
            }
internal static void PopulateSyncSplitQueueFromIDataRow(DataRow row, SyncSplitQueue syncSplitQueue)
        {
            if (row["Check"] != DBNull.Value) syncSplitQueue.Check = Boolean.Parse(row["Check"].ToString());
        }
4.由于列头没有checkbox,所以要加一个checkbox,位置刚好放在第一列列头的位置。
5.添加checkbox事件:
private void cBAll_CheckedChanged(object sender, EventArgs e)
        {
            if (this.cBAll.Checked)
            {
                for (int i = 0; i <this.gvview.RowCount; i++)
                {
                    gvview.SetRowCellValue(i, "Check", true);

                   
                   
                  


                }
            }
            else
            {
                for (int i = 0; i < gvview.RowCount; i++)
                {
                    gvview.SetRowCellValue(i, "Check", false);
                }
 
            }
        }

6.添加gvview,rowclick事件

    private void gvview_RowClick_1(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {


            int[] rows = gvview.GetSelectedRows();
         
            foreach (int row in rows)
            {
              
                SyncSplitQueue FocuseQueue = gvQueue.GetRow(row) as SyncSplitQueue;
                if (FocuseQueue.Check)
                    FocuseQueue.Check = false;
                else
                    FocuseQueue.Check = true;
              
              
            }
            gcon.RefreshDataSource();
 
        }
7.最终效果看图

0 0
原创粉丝点击