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;
}
}