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


2

3

4



5

6

7

8

9



10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40
