DataGridview动态添加列
生活随笔
收集整理的這篇文章主要介紹了
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 Code3.獲取選中的行
#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 Code4.刪除多行操作
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动态添加列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva 610(tarjan的应用)
- 下一篇: 从binlog恢复数据及Mysqlbin