DataGridview动态添加列
1.获取数据源(select * from table名称)
2.动态绑定数据源
1 private void GetTableInfo(DataTable dt) 2 { 3 listBh = new List<BH_DICTInfo>(); 4 foreach (DataRow dr in dt.Rows) 5 { 6 BH_DICTInfo model = new BH_DICTInfo(); 7 model.DictId = dr["DICT_ID"].ToString(); 8 model.DictName = dr["DICT_NAME"].ToString(); 9 model.DictType = dr["DICT_TYPE"].ToString(); 10 model.Enable = Convert.ToDecimal(dr["ENABLE"].ToString()); 11 model.Orders = Convert.ToDecimal(dr["ORDERS"].ToString()); 12 model.Remark = dr["REMARK"].ToString(); 13 listBh.Add(model); 14 } 15 dgvBh.DataSource = listBh; 16 //清除上次数据源 17 this.dgvBh.Columns.Clear(); 18 //属性时是否自动创建列 19 dgvBh.AutoGenerateColumns = false; 20 21 DisplayCol(dgvBh, "DictId", "字典编号"); 22 DisplayCol(dgvBh, "DictName", "字典名称"); 23 DisplayCol(dgvBh, "DictType", "字典类型"); 24 DisplayCol(dgvBh, "Orders", "字典名称"); 25 DisplayCol(dgvBh, "Enable", "是否可用"); 26 DisplayCol(dgvBh, "Remark", "备注"); 27 DisplayCol(dgvBh, "Checkbox", "删除"); 28 //this.dgvBh.DataMember = "DictName,DictType,Orders,Enable,Remark"; 29 this.dgvBh.Columns[0].Visible = false; 30 } 31 /// <summary> 32 /// 添加列表头 33 /// </summary> 34 /// <param name="dgv"></param> 35 /// <param name="dataPropertyName"></param> 36 /// <param name="headerText"></param> 37 void DisplayCol(DataGridView dgv, string dataPropertyName, string headerText) 38 { 39 //dgv.Columns[dataPropertyName].Width = 100; 40 if (dataPropertyName == "Checkbox") 41 { 42 DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn(); 43 ck.DataPropertyName = dataPropertyName; 44 ck.HeaderText = headerText; 45 ck.Name = dataPropertyName; 46 dgv.Columns.AddRange(new DataGridViewColumn[] { ck }); 47 } 48 else 49 { 50 DataGridViewTextBoxColumn obj = new DataGridViewTextBoxColumn(); 51 obj.DataPropertyName = dataPropertyName; 52 obj.HeaderText = headerText; 53 obj.Name = dataPropertyName; 54 obj.Resizable = DataGridViewTriState.True; 55 obj.ReadOnly = true; 56 dgv.Columns.AddRange(new DataGridViewColumn[] { obj }); 57 } 58 }
View Code
3.获取选中的行
#region 修改事件/// <summary>/// 修改事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnBh_update_Click(object sender, EventArgs e){model = new BH_DICTInfo();foreach (DataGridViewRow row in this.dgvBh.SelectedRows){model.DictId = row.Cells["DictId"].Value.ToString();model.DictName = row.Cells["DictName"].Value.ToString();model.DictType = row.Cells["DictType"].Value.ToString();model.Enable = Convert.ToDecimal(row.Cells["Enable"].Value.ToString());model.Orders = Convert.ToDecimal(row.Cells["Orders"].Value.ToString());model.Remark = row.Cells["Remark"].Value.ToString();}if (model == null)MessageBox.Show("请选择");BhDictAddEdit SysEdit = new BhDictAddEdit("业务字典编辑信息", "保存编辑", model);SysEdit.ShowDialog();BindDataBh();}#endregion
View Code
4.删除多行操作
1 #region 删除事件 2 /// <summary> 3 ///删除事件 4 /// </summary> 5 /// <param name="sender"></param> 6 /// <param name="e"></param> 7 private void btnBh_delete_Click(object sender, EventArgs e) 8 { 9 //动态添加链接对象语句 10 StringBuilder sqlStr = new StringBuilder(); 11 for (int i = 0; i < dgvBh.Rows.Count; i++) 12 { 13 object cbh = this.dgvBh.Rows[i].Cells["Checkbox"].Value; 14 if (cbh != null) 15 { 16 sqlStr.Append("DICT_ID="); 17 sqlStr.Append("\'"); 18 sqlStr.Append(this.dgvBh.Rows[i].Cells["DictId"].Value.ToString()); 19 sqlStr.Append("\'"); 20 sqlStr.Append(" or "); 21 } 22 } 23 24 if (sqlStr.ToString() != "") 25 { 26 string sq = sqlStr.ToString().Substring(0, sqlStr.ToString().TrimEnd().LastIndexOf("or")); 27 28 if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定要删除吗?", "系统提示") == System.Windows.Forms.DialogResult.OK) 29 // if (MessageBox.Show("您确定要删除吗?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes) 30 { 31 string sql = "delete from bh_dict where " + sq + ""; 32 ParameterSetConfig.GetDataDal(); 33 ParameterSetConfig.OpenDB(); 34 DataTable dt = ParameterSetConfig._dataDal.ExecuteSqlReturnTable(sql); 35 ParameterSetConfig.closeDB(); 36 BindDataBh(); 37 } 38 } 39 else 40 { 41 MessageBox.Show("请选择要删除的行"); 42 } 43 }
View Code
转载于:https://www.cnblogs.com/zxbzl/p/3178414.html
DataGridview动态添加列相关推荐
- C# DataGridView 动态添加列和调整列顺序
https://yq.aliyun.com/articles/421700 // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private void ...
- [Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)
前言 延续: [Ext JS 4] 实战之Grid, Tree Gird 动态添加列 这一篇. 在上一篇中有提到在grid 中如何进行带隐藏栏位的动态添加方式.归纳一下思路就是: 先显示,后隐藏. 当 ...
- DataGridView动态添加新行的两种方法
简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1. ...
- GridView动态添加列并判断绑定数据DataTable的列类型控制展示内容
此篇随笔是2013年根据项目需求开发记录的,不一定符合大众口味,只需了解开发思路,毕竟解决方案多种多样. 下面简单说说需求点吧: (1)通过下拉列表可以选择一个DataSet(数据集),一个DataS ...
- DataSet 动态添加列
public DataSet GetNewId(List<string> IdArr){ DataSet ds = new DataSet();DataTable newtb = new ...
- bootstrap-table动态添加列、动态添加行、单元格点击横向、竖向统计
功能说明 --暂时是个demo 数据需要自行处理 1.竖向统计统计使用bootstrap-table自带的footerFormatter函数2.横向同级统计使用bootstrap-table 列属性 ...
- [Ext JS 4] 实战之Grid, Tree Gird 动态添加列
前言 在Ext js 中, 定义一个Grid 很方便,主要需要的是 1. 定义columns 2. 定义一个store 3. 定义grid var store1 = Ext.create('Ext.d ...
- 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能...
一.使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能 在aspx页面中的代码如下: <asp:datagrid id="User ...
- ASP.NET 2.0 中动态添加 GridView 模板列
ASP.NET 2.0 中动态添加 GridView 模板列的例子 动态添加列,关键是实现 ITemplate.InstantiateIn 方法.下面是一个添加 GridView 模板列的例子. ...
最新文章
- bzoj1089: [SCOI2003]严格n元树
- 红薯因 Swift 重写开源中国失败,貌似欲改用 Python
- Android入门——电话拨号器和四种点击事件
- PoE交换机的4种连接方法
- opencl 加速 c语言程序_Win10应用获得面向OpenCL和OpenGL的兼容层
- java 名词解释等
- 通过kubeadm安装kubernetes 1.13.2
- [知识整理]Linux系统WIFI知识的一些整理
- 力扣350.两个数组的交集 II(JavaScript)
- java简单的思维逻辑训练_简单的代码,适合初学者,锻炼逻辑思维能力,可以练习练习!...
- Android中实现两次点击返回键退出本程序
- CSS实现背景图片自适应屏幕大小
- java 情感分析_Flink基于Alink中文情感分析示例(Java版本)
- 【工大SCIR笔记】浅谈Transformer模型中的位置表示
- caj打印PDF提示打印超范围应该怎么办?
- 创建菜单栏、菜单、菜单项
- MVC AJAXPro
- stlink下载调试器使用说明(STM32采用stlink下载程序)
- 一份golang令牌桶攻略(juju/ratelimit)
- EF Core之DBContext生命周期
热门文章
- js简易计算机代码if语句,简单学习下JS里的if语句的写法
- android 音乐 数据库,android从数据库中取音乐数据
- mysql分页查询关键_MySQL优化教程之超大分页查询
- Uvaoj 11248 Frequency Hopping(Dinic求最小割)
- codeforces MUH and Important Things
- 34988 Happy Reversal(二进制去取反)
- php windows共享内存,给PHP开启shmop扩展实现共享内存
- android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类
- mysql 工具 08s01_Mysql管理必备工具Maatkit详解之十四(mk-kill)
- Java一次编译,到处运行是如何实现的