DataGridView的行问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:56:35
不绑定数据源,怎样动态添加
DataGridView的行数,并且给新增加
的行列赋值,
i的初始值为0,然后每点击button1控件一次i值加1
dataGridView1.Rows[dataGridView1.RowCount-i].Cells[0].Value
这句话有什么问题,老是提示越界,
如果是下面这样
private void button1_Click(object sender, EventArgs e)
{i = dataGridView1.RowCount-1;
dataGridView1.Rows[i ].Cells[0].Value = 1;
dataGridView1.Rows[i ].Cells[1].Value = 2;
dataGridView1.Rows[i ].Cells[2].Value = 3;
dataGridView1.Rows[i ].Cells[3].Value = 4;
dataGridView1.RowCount++;}每次点击button1控件
就会发生只有最新行的列值才有数据,其他行的列值都是空白

dataGridView1.Rows[dataGridView1.RowCount-i].Cells[0].Value
这句话提示你越界,只有可能是RowCount为0,不知道你是在什么时候调用的这句话。

而且你似乎没有给GridView绑定数据源,这样当你每次postback的时候,都相当于清空了GridView。

而且不建议你直接给GridView赋值,这样似乎没有意义。

正确的做法是在后台创建一个DataTable,
然后设定dataGridView1,DataSource = 你创建的DataTable,
设定dataGridView1.autoGenerate = True;自动生成与DataTable相对应得列。
最后dataGridView1.Bind();也就是绑定数据源。

以后每次点击按钮后重建DataTable,重新设定数据源,重新绑定。就可以实现你所需要的效果了。

你的代码没贴完整把...把完整的放出来看看...
详细说明一下你想实现的效果...
DataGridView好像是Winform的控件,不存在postback的问题吧....

一楼的回答很好,照他说的改改试试