|
~~~~我是一棵小树苗!~~~~
-----.NET篇 |

CreateDataGrid()方法,动态生成多个DataGrid#region CreateDataGrid()方法,动态生成多个DataGrid
//faCount是方案个数,也就是要动态生成DataGrid的个数
private void CreateDataGrid(string[] faName, int faCount, string ny)
{
ClassLib.DtaGzcx data = new CPHrms.ClassLib.DtaGzcx();//这个是用来获取数据源的,先不用管它
float yfgz = 0;
float sfgz = 0;
for(int i=0; i<faCount;i++)
{
Label labFA = new Label();
labFA.Text = faName[i].ToString();
Panel pl = new Panel();
Panel plNull = new Panel();
plNull.Height = 20;
DataSet[] dsGzxx = new DataSet[10];
dsGzxx[i] = data.SelectEmployeeGZXX_1(faName[i].Trim(),Session["ZGDM"].ToString(),ny,Session["ConStr"].ToString());
DataGrid[] dg = new DataGrid[faCount];//这个地方好象不用数组也可以
dg[i] = new DataGrid();
dg[i].AutoGenerateColumns = true;
dg[i].ShowHeader = true;
dg[i].HeaderStyle.CssClass = "HeadStyle"; //HeadStyle 是在CSS里写的
dg[i].AlternatingItemStyle.CssClass = "AlternatingItemStyle";
dg[i].ItemStyle.CssClass = "ItemStyle";
dg[i].Width = 900;
dg[i].DataSource = dsGzxx[i].Tables[0];
dg[i].DataBind();
pl.Controls.Add(labFA);
pl.CssClass = "panel";
byDG.Controls.Add(pl); //把DataGrid的标题添加到单元格里
byDG.Controls.Add(dg[i]); //紧接着就是DataGrid
byDG.Controls.Add(plNull); //然后再添加一个空Panel以便把两个DataGrid分开显示
//以下是获得多个DataGrid相同列的数据总和并显示
yfgz = yfgz + Convert.ToSingle(dsGzxx[i].Tables[1].Rows[0][0].ToString());
sfgz = sfgz + Convert.ToSingle(dsGzxx[i].Tables[1].Rows[0][1].ToString());
this.lblCountYFGZ.Text = Convert.ToString(yfgz);
this.lblCountSFGZ.Text = Convert.ToString(sfgz);
this.lblName.Text = dsGzxx[i].Tables[0].Rows[0]["姓名"].ToString();
}
}
#endregion