DataGrid 绑定DataTable,高手进来看看
GetZhimaData gzd = new GetZhimaData();
ArrayList al = gzd.ImportDataFromDB();
DataTable dt = new DataTable();
dt.Columns.Clear();
dt.TableName = "zhima ";
//添加列
dt.Columns.Add( "ID号 ", typeof(String));
dt.Columns.Add( "期数 ", typeof(String));
dt.Columns.Add( "结果 ", typeof(String));
#region "动态列 "
if(ckbSimpleCondition.CheckedItems.Count !=0) //第一次我没有选择,不执行这个。第二次执行.
{
for(int i=0;i <ckbSimpleCondition.CheckedItems.Count;i++)
{
dt.Columns.Add(ckbSimpleCondition.CheckedItems[i].ToString(), typeof(String));
string strModeName = ckbSimpleCondition.CheckedItems[i].ToString();
alModeName.Add(strModeName);
//临时做法
if(i==0)
{
alModeValue.Add(mode0005);
}
else if(i==1)
{
alModeValue.Add(mode0621);
}
else
{
alModeValue.Add(mode2227);
}
}
}
#endregion
#region 开始添加数据
//开始添加数据
#endregion
dataGrid1.DataSource = dt;
上面的代码是按钮事件中的source
我用DataTable 绑定到DataGrid上。
第一次不执行代码中的for循环。DataTable中就只有三列。
我第二次选择ckbSimpleCondition中的三项。经过调试。往DataTable中添加数据之后。
DataTable中确实已经新增了三列。并且里面有值。
而dataGrid1.DataSource = dt;执行后。并没有发现dataGrid1中列的变化--它还是三列。没变
------解决方案--------------------AutoGenerateColumns属性设为True 看看