datagridview绑定的数据是datatable.
datatable中的列是不固定的,已经设置了dataGridView1.AutoGenerateColumns = false;
现在我怎么去循环datatable去动态创建datagridview中的列和行呢?

解决方案 »

  1.   

    datagridview.DataSource=某datatable 不就可以了吗
      

  2.   

    不行,我里面有DataGridViewImageColumn这种列,必须用代码去创建列的。
      

  3.   

    循环添加
       DataGridViewButtonColumn btn = new DataGridViewButtonColumn();     
       btn.HeaderText = "操作";         
       btn.Name = "btn1";         
       btn.Width = 30;          
       btn.DefaultCellStyle.NullValue = "删除";       
       dataGridView1.Columns.Add(btn);
      

  4.   


    因为DataTable是根据条件筛选出来的数据,动态生成的,我也不知道他会产生多少列,有可能5列,10列,20列之类的。所以我不能设置DataPropertyName。
      

  5.   


                DataTable dt = new DataTable();
                dt.Columns.Add("ID", typeof(string));
                dt.Columns.Add("Name", typeof(string));
                dt.Columns.Add("Address", typeof(string));            dataGridView1.AutoGenerateColumns = false;
                dataGridView1.DataSource = dt;
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
                    column.HeaderText = dt.Columns[i].ColumnName;
                    column.Name = dt.Columns[i].ColumnName;
                    dataGridView1.Columns.Add(column);
                }