问题描述
点击控件button1调用A方法生在dataGrid1生成一个table,如何点击button2控件调用A方法才能在dataGrid2中生成另一个内容不同的table,调用方法时已给定参数。//生成table,并加入数据privateDataTableGetDataTable(string[]Columname,string[,]RowInfo){foreach(stringcolumnnameinColumname)//遍历数组{dt.Columns.Add(columnname,typeof(string));//添加列}List<string>list=newList<string>();object[]obj=null;for(inti=0;i<RowInfo.GetLength(0);i++){//遍历二维数组行StringBuildernewstr=newStringBuilder();for(intj=0;j<RowInfo.GetLength(1);j++){//遍历二维数组列if(j<RowInfo.GetLength(1)-1){newstr.Append(RowInfo[i,j]+",");}else{newstr.Append(RowInfo[i,j]);}}list.Add(newstr.ToString());//加入数列中}for(intn=0;n<list.Count;n++)//遍历数列{DataRowdr=dt.NewRow();obj=list[n].Split(newchar[]{','});//切分dr.ItemArray=obj;//将数组加入到table中的一行dt.Rows.Add(dr);//添加行}returndt;}//执行调用方法if(btsmpsqd.BackColor==Color.Blue){string[]columname={"物料名称","需求数量","供应商","SNP","供应商编码"};string[,]RowInfo={{"进气软管总成","100","神奇塑料公司","20","GYS00001"},{"前右窗玻璃","80","奇迹玻璃公司","20","GYS00002"},{"右大灯总成","100","王者灯具公司","20","GYS00003"}};DataTableddt=GetDataTable(columname,RowInfo);jjddataGrid.RowHeadersVisible=false;jjddataGrid.Font=newFont("Tahoma",9,FontStyle.Regular);jjddataGrid.DataSource=ddt;}elseif(btbzbq.BackColor==Color.Blue){string[]columname={"包装标签","批次号","零件图号","物料编码","零件名称","供应商编号","供应商名称","当前数量","拣货人编码","拣货人姓名"};string[,]RowInfo={……};DataTableddt1=GetDataTable(columname,RowInfo);dataGrid1.Font=newFont("Tahoma",9,FontStyle.Regular);dataGrid1.DataSource=ddt1;}
解决方案
解决方案二:
在调用一下GetDataTable
解决方案三:
执行的是扫描触发,根据上面两button的颜色判断,并进行调用,关键是第二次调用总会加上之前的table内容,两个table合并来了
解决方案四:
调用datatable添加数据之前先执行清空数据datatable.clear()//具体查下这个怎么写,忘记了
解决方案五:
datatable.rows.clear();在你的生成datatable方法的第一列写清除
解决方案六:
引用4楼Benjay77的回复:
datatable.rows.clear();在你的生成datatable方法的第一列写清除
恩,在生成行和列前加入dt.Rows.clear()和dt.Columns.clear()就可以了谢谢各位了,感谢@Benjay77