今天一网友问我怎么给WINFORM下的DataGrid自由绑定列。由于没有在winForm下编过程,原以为和webForm下差不多。结果一试还是有很大差别的。
主要代码:
1private void Form1_Load(object sender, System.EventArgs e)
2{
3 SqlConnection conn=new SqlConnection("server=.;database=projectDemo;uid=sa;pwd=;");
4 SqlDataAdapter da=new SqlDataAdapter("select * from project",conn);
5 da.Fill(ds,"project");
6 dataGrid1.DataSource=ds;
7 dataGrid1.DataMember="project";
8
9 DataGridTableStyle ts1 = new DataGridTableStyle();
10 ts1.MappingName = "project";
11
12 DataGridTextBoxColumn myDataCol = new DataGridTextBoxColumn();
13 myDataCol.HeaderText = "测试";
14 myDataCol.MappingName = "proName";
15
16 ts1.GridColumnStyles.Add(myDataCol);
17
18 DataGridTextBoxColumn myDataCol1 = new DataGridTextBoxColumn();
19 myDataCol1.HeaderText = "用户ID";
20 myDataCol1.MappingName = "proID";
21
22 ts1.GridColumnStyles.Add(myDataCol1);
23
24 dataGrid1.TableStyles.Add(ts1);
25
26}
2{
3 SqlConnection conn=new SqlConnection("server=.;database=projectDemo;uid=sa;pwd=;");
4 SqlDataAdapter da=new SqlDataAdapter("select * from project",conn);
5 da.Fill(ds,"project");
6 dataGrid1.DataSource=ds;
7 dataGrid1.DataMember="project";
8
9 DataGridTableStyle ts1 = new DataGridTableStyle();
10 ts1.MappingName = "project";
11
12 DataGridTextBoxColumn myDataCol = new DataGridTextBoxColumn();
13 myDataCol.HeaderText = "测试";
14 myDataCol.MappingName = "proName";
15
16 ts1.GridColumnStyles.Add(myDataCol);
17
18 DataGridTextBoxColumn myDataCol1 = new DataGridTextBoxColumn();
19 myDataCol1.HeaderText = "用户ID";
20 myDataCol1.MappingName = "proID";
21
22 ts1.GridColumnStyles.Add(myDataCol1);
23
24 dataGrid1.TableStyles.Add(ts1);
25
26}
**************
1、DataGridTableStyle类表示DataGrid控件在运行时绘制的表;
2、DataGridColumnStyle.MappingName属性获取或设置用于将列样式映射到数据成员的名称;
3、DataGridTableStyle.MappingName属性获取或设置用于将此表映射到特定数据源的名称;