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动态添加列相关推荐

  1. C# DataGridView 动态添加列和调整列顺序

    https://yq.aliyun.com/articles/421700 // DataGridView1的ColumnDisplayIndexChanged事件处理方法 private void  ...

  2. [Ext JS 4] 实战之Grid, Tree Gird 动态添加列续(性能考虑)

    前言 延续: [Ext JS 4] 实战之Grid, Tree Gird 动态添加列 这一篇. 在上一篇中有提到在grid 中如何进行带隐藏栏位的动态添加方式.归纳一下思路就是: 先显示,后隐藏. 当 ...

  3. DataGridView动态添加新行的两种方法

    简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int index=this.dataGridView1.Rows.Add(); this.dataGridView1. ...

  4. GridView动态添加列并判断绑定数据DataTable的列类型控制展示内容

    此篇随笔是2013年根据项目需求开发记录的,不一定符合大众口味,只需了解开发思路,毕竟解决方案多种多样. 下面简单说说需求点吧: (1)通过下拉列表可以选择一个DataSet(数据集),一个DataS ...

  5. DataSet 动态添加列

    public DataSet GetNewId(List<string> IdArr){ DataSet ds = new DataSet();DataTable newtb = new ...

  6. bootstrap-table动态添加列、动态添加行、单元格点击横向、竖向统计

    功能说明 --暂时是个demo 数据需要自行处理 1.竖向统计统计使用bootstrap-table自带的footerFormatter函数2.横向同级统计使用bootstrap-table 列属性 ...

  7. [Ext JS 4] 实战之Grid, Tree Gird 动态添加列

    前言 在Ext js 中, 定义一个Grid 很方便,主要需要的是 1. 定义columns 2. 定义一个store 3. 定义grid var store1 = Ext.create('Ext.d ...

  8. 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能...

    一.使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能 在aspx页面中的代码如下: <asp:datagrid id="User ...

  9. ASP.NET 2.0 中动态添加 GridView 模板列

      ASP.NET 2.0 中动态添加 GridView 模板列的例子 动态添加列,关键是实现 ITemplate.InstantiateIn 方法.下面是一个添加 GridView 模板列的例子. ...

最新文章

  1. bzoj1089: [SCOI2003]严格n元树
  2. 红薯因 Swift 重写开源中国失败,貌似欲改用 Python
  3. Android入门——电话拨号器和四种点击事件
  4. PoE交换机的4种连接方法
  5. opencl 加速 c语言程序_Win10应用获得面向OpenCL和OpenGL的兼容层
  6. java 名词解释等
  7. 通过kubeadm安装kubernetes 1.13.2
  8. [知识整理]Linux系统WIFI知识的一些整理
  9. 力扣350.两个数组的交集 II(JavaScript)
  10. java简单的思维逻辑训练_简单的代码,适合初学者,锻炼逻辑思维能力,可以练习练习!...
  11. Android中实现两次点击返回键退出本程序
  12. CSS实现背景图片自适应屏幕大小
  13. java 情感分析_Flink基于Alink中文情感分析示例(Java版本)
  14. 【工大SCIR笔记】浅谈Transformer模型中的位置表示
  15. caj打印PDF提示打印超范围应该怎么办?
  16. 创建菜单栏、菜单、菜单项
  17. MVC AJAXPro
  18. stlink下载调试器使用说明(STM32采用stlink下载程序)
  19. 一份golang令牌桶攻略(juju/ratelimit)
  20. EF Core之DBContext生命周期

热门文章

  1. js简易计算机代码if语句,简单学习下JS里的if语句的写法
  2. android 音乐 数据库,android从数据库中取音乐数据
  3. mysql分页查询关键_MySQL优化教程之超大分页查询
  4. Uvaoj 11248 Frequency Hopping(Dinic求最小割)
  5. codeforces MUH and Important Things
  6. 34988 Happy Reversal(二进制去取反)
  7. php windows共享内存,给PHP开启shmop扩展实现共享内存
  8. android 尺寸变化动画,Android ScaleAnimation类:尺寸变化动画类
  9. mysql 工具 08s01_Mysql管理必备工具Maatkit详解之十四(mk-kill)
  10. Java一次编译,到处运行是如何实现的