[转载]DataTable与DataGridView绑定 – 左眼微笑右眼泪 – 博客园.
在很多C/S程序中,一般都需要把数据以DataGridView显示出来,有时可以直接把得到的实体集合绑定到DataGridView上面,但更多的 时候,我们是把DataTable绑定到这个控件上面,在绑定之前,我们需要对DataGrdiView进行初始化。一般可以用如下的代码进行初始化:
dgv.Columns.Add("PRODUCTTYPE", "类型"); dgv.Columns["PRODUCTTYPE"].DataPropertyName = "PRODUCTTYPE"; dgv.Columns["PRODUCTTYPE"].Width = 160; dgv.Columns.Add("ALIAS", "别名"); dgv.Columns["ALIAS"].DataPropertyName = "ALIAS"; dgv.Columns["ALIAS"].Width = 200; dgv.Columns.Add("CLASSIFICATION", "类别"); dgv.Columns["CLASSIFICATION"].DataPropertyName = "CLASSIFICATION"; dgv.Columns["CLASSIFICATION"].Width = 200; dgv.Columns["CLASSIFICATION"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
一般第一列都是显示一个图片,后面的列就要和你的DataTable中的字段对应。需要注意的是,在创建新列的时候,括号里面的英文名称一定是你DataTable中的列名,中文名称是你想在界面上显示的名称。最后有一句话dgv.Columns[“CLASSIFICATION”].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;,这个意思是设置最后一列为自动填充模式。因为每一列我们都设置了宽度,当窗 体最大化后,所以的列宽加起来没有窗体宽,那么DataGridView后面就会空出一片出来,把最后一列设置成了自动填充模式后,当窗体最大化时,最后 一列的宽度会自动增加,填充其他的空白区域。
另外,还有一种初始化的方法,也可以使用,代码如下:
DataGridViewTextBoxColumn colProductType = new DataGridViewTextBoxColumn(); colProductType.DataPropertyName = strPRODUCTTYPE; colProductType.Name = strPRODUCTTYPE; colProductType.HeaderText = "类型"; colProductType.Width = 160; DataGridViewTextBoxColumn colAlias = new DataGridViewTextBoxColumn(); colAlias.DataPropertyName = strALIAS; colAlias.Name = strALIAS; colAlias.HeaderText = "别名"; colAlias.Width = 200; DataGridViewTextBoxColumn colClassification = new DataGridViewTextBoxColumn(); colClassification.DataPropertyName = strCLASSIFICATION; colClassification.Name = strCLASSIFICATION; colClassification.HeaderText = "类别"; colClassification.Width = 200; dgv.Columns.AddRange(new DataGridViewColumn[] { colImg, colProductType, colAlias });
当然在这种方法中,strPRODUCTTYPE,strALIAS,strCLASSIFICATION三个变量分别需要提前定义好,它们的值也就是需要绑定的DataTable的列的值。