DevExpress的Grid加一列checkbox用来多选
来源:互联网 发布:数控铣削编程加图案 编辑:程序博客网 时间:2024/05/17 11:34
DevExpress刚开始用,整理了一个在左边加一列checkbox用来多选记录的方法,分享给大家。效果如下图:
首先要在设计器中加一列select,如图:
在绑定DataTable时要加一列,否则没办法多选,代码如下:
/// <summary>
/// 在绑定的DataTable上加一列checkbox供选择多行
/// </summary>
/// <param name="dt">数据源,不会被改变</param>
/// <param name="fieldName">选择列的域名</param>
/// <param name="defaultChooseState">是否默认全选</param>
/// <returns>加一列的绑定数据源</returns>
public static DataTable AddSelectColumnToDataTable(DataTable dt, string fieldName, bool defaultChooseState = false)
{
DataTable returnDt = dt.Copy();
if(returnDt.Columns.Contains(fieldName))
{
throw new Exception("DataTable中要添加的列已存在【" + fieldName + "】字段,请更改!");
}
//一定要有这一步,否则列表无法多选
returnDt.Columns.Add(fieldName, typeof(bool));
//一定要有这一步,否则无法获取行是否被选中
for (int rowNO = 0; rowNO < returnDt.Rows.Count; rowNO++)
{
returnDt.Rows[rowNO][fieldName] = defaultChooseState;
}
return returnDt;
}
获取选中行数据的方法:
/// <summary>
/// 获取打钩列选中的数据集合
/// </summary>
/// <typeparam name="T">绑定数据类型</typeparam>
/// <param name="gridView">表格</param>
/// <param name="selectFieldName">打钩列域名</param>
/// <returns>选中行绑定的数据</returns>
public static List<T> GetSelectRowData<T>(GridView gridView, string selectFieldName) where T : new()
{
//必须要有这句,否则无法获取到最后编辑的记录
if (!gridView.IsNewItemRow(gridView.FocusedRowHandle))
{
gridView.CloseEditor();
//gridView_class.UpdateCurrentRow();
}
List<T> tList = new List<T>();
for (int rowNo = 0; rowNo < gridView.RowCount; rowNo++)
{
T t = new T();
DataRow row = gridView.GetDataRow(rowNo);
if (row != null && (bool)row[selectFieldName] == true)
{
ChangeDataRowToEntity<T>(row, t);
tList.Add(t);
}
}
return tList;
}
全选、取消全选的方法:
/// <summary>
/// 全选
/// </summary>
/// <param name="gridView"></param>
/// <param name="fieldName">打钩列域名</param>
public static void CheckAll(GridView gridView, string fieldName)
{
for (int i = 0; i < gridView.DataRowCount; i++)
{
gridView.SetRowCellValue(i, gridView.Columns[fieldName], true);
}
}
/// <summary>
/// 全不选
/// </summary>
/// <param name="gridView"></param>
/// <param name="fieldName">打钩列域名</param>
public static void UnCheckAll(GridView gridView, string fieldName)
{
for (int i = 0; i < gridView.DataRowCount; i++)
{
gridView.SetRowCellValue(i, gridView.Columns[fieldName], false);
}
}
0 0
- DevExpress的Grid加一列checkbox用来多选
- 关于DevExpress Grid的Column中加checkbox的总结
- 关于cxgrid新增加一列checkbox的解决方法
- Devexpress gridcontrol checkbox不能多选问题
- Dojo Grid 一列中同时有checkbox 和数据的实现 和 设置checkbox 可用与不可用(disable) 的方法
- DevExpress GridControl的使用,DevExpress.XtraGrid.Views.Grid.GridView使用
- DevExpress GridControl的使用,DevExpress.XtraGrid.Views.Grid.GridView使用
- DevExpress.XtraGrid.Views.Grid 的颜色设置
- DevExpress Grid 列标题多行设置
- 在DevExpress GridControl的一列中显示图片
- EXT gridpanel 的一列加tip
- extjs grid 中 Checkbox 单选和复选的限定
- jquery grid表格checkbox的关联勾选与取消
- ext grid 的每行最后一列添加 按钮
- ext grid 的每行最后一列添加 按钮
- DeveXpress ASPxGridView实现checkbox全选反选(自带的ShowSelectCheckBOx)并获取选中checkbox对应的值集合
- EazyUI Grid和TreeGrid的 CheckBox 模式
- DevExpress公司Grid控件指定行的颜色
- Android中通知的基本用法
- [转载] jqGrid 各种参数 详解
- FluentNHibernate的连接配置
- No package identifier when getting value for resource number
- KMP
- DevExpress的Grid加一列checkbox用来多选
- C# 常用加密解密方法
- 关于Servlet和from路径问题
- “WPF老矣,尚能饭否”—且说说WPF今生未来(上):担心
- 让RichTextBox的滚动条滚到最下面
- WRP Ultimate 3D Endless Runner Kit - 狂徒末路跑酷角色替换教程
- 2015移动互联网格局已定!
- 第11条: 在 operator= 中处理“自我赋值”
- 深入Java虚拟机:Javac编译与JIT编译