GridView控件的数据绑定问题
1、页面加载时我构造一个数据表(仅有一行数据),并作为数据源绑定到GridView
//数据初始化
private void InitVal()
{
//构造演示数据
DataTable dt = new DataTable();
DataColumn dc0 = new DataColumn("Q1");
DataColumn dc1 = new DataColumn("Q2");
DataColumn dc2 = new DataColumn("Q3");
dt.Columns.Add(dc0);
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
DataRow dr = dt.NewRow();
dr[0] = "1";
dr[1] = "请求权";
dr[2] = "小行星。";
dt.Rows.Add(dr);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
2、点击页面上的查询按钮,访问数据库并获取一个数据源绑定到GridView,页面能正常显示数据源中的记录
//按钮:查询
protected void ibQuery_Click(object sender, ImageClickEventArgs e)
{
DataSet ds = rQues.GetQues(eQues);
if (ds.Tables[0].Rows.Count == 0)
ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
this.GridView1.DataSource = null;
this.GridView1.DataBind();
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind();
}
3、问题:新数据源有多于一行的记录,当我选择第2行及后面的行,执行到GridView1.Rows[GridView1.SelectedIndex]时报索引超出范围的错误,跟踪GridView1.Rows.Count=1(最初第一次绑定时的数据行数),请高手解惑?
//源代码如下
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
int i = GridView1.SelectedIndex;
GridViewRow row = GridView1.Rows[i];//此处出错,
Session["Q1"] = row.Cells[0].Text;
Session["Q2"] = row.Cells[1].Text;
Session["Q3"] = row.Cells[2].Text;
Response.Redirect("QuesEdit.aspx");
}