winform DatGridView相关操作笔记

1.显示数据DataSource

类型转换用到的方法

        public static T AnalyticalData_Obj<T>(string jsonData, Logger logger) where T : new()
        {
            if (!string.IsNullOrWhiteSpace(jsonData))
            {
                try
                {
                    var obj = JsonConvert.DeserializeObject<GetResultData>(jsonData);
                    if (obj.code == 0)
                    {
                        if (obj.data != null)
                        {
                            var item = obj.data;
                            T temp = JsonConvert.DeserializeObject<T>(item.ToString());

                            return temp;
                        }

                        logger.WarnLog($"请求返回的 {typeof(T)} 数据为空!");
                    }
                    else
                    {
                        logger.ErrorLog($"数据异常!错误码:{obj.code},信息:{obj.msg}");
                    }
                }
                catch (System.Exception ex)
                {
                    //logger.ErrorLog($"JSON->Model数据解析出错!", ex);
                    throw new MDeserializeDataException($"JSON->Model数据解析出错!", ex);
                }
            }

            return default(T);
        }

将调用的数据显示在datagirdview

 var jsonData = HttpHelper.Get("api/InitDictionary/GetKeys"); //调用接口
 var data = AnalyticalJsonData.AnalyticalData_Obj<dynamic>(jsonData, logger);//数据类型转换
this.dataGridView1.AutoGenerateColumns = false;//去掉查询自带的多余列
                this.dataGridView1.DataSource = data;

2.用代码创建单元格按钮

        private void NewMethodBtn(string Name, string HeaderText, string NullValue)
        {
            DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
            btn.Name = Name;//button单元格属性名
            btn.HeaderText = HeaderText;//button单元格Text值
            btn.DefaultCellStyle.NullValue = NullValue; //这个可有可无
            dataGridView1.Columns.Add(btn);
        }
        方法调用 
        NewMethodBtn("btnModify","修改","修改")

3.加选中框

dataGridView1 .Columns.Add(new DataGridViewCheckBoxColumn()
            {
                HeaderText = "选择", //标题Text
                Name = "IsChecked",//标题属性名
                TrueValue = true,
                FalseValue = false,
                DataPropertyName = "IsChecked"
            });

单击选中的单元格操作时的判断选中并保存

    private void InternalDgv_Local_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
       {
           if (e.RowIndex != -1 && e.ColumnIndex != -1)
           {
               //checkbox 勾上
               if ((bool)dataGridView1 Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
               {
                   //选中改为不选中
                   dataGridView1 .Rows[e.RowIndex].Cells[0].Value = false;
                   var data = dataGridView1 .NewMethodDatelist();
                   list.Remove(Convert.ToString(data.ItemCode));
               }
               else
               {
                   //不选中改为选中
                  dataGridView1 Rows[e.RowIndex].Cells[0].Value = true;
                   var data = dataGridView1 .NewMethodDatelist();
                   list.Add(Convert.ToString( data.ItemCode));
               }
               CuPackingDetail._list = list;
           }
       }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值