问一下GridView编辑时,出现的:指定的参数已超出有效值的范围
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e){
GridViewRow row = GridView1.Rows[e.RowIndex];
string ID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
TextBox user = (TextBox)row.Controls[5].Controls[0];//指定的参数已超出有效值的范围。
string s = user.Text;
string t = GridView1.Rows[e.RowIndex].Cells[6].Text.ToString();
try
{
SqlConnection cn = DBCon.createConn();
cn.Open();
SqlCommand cm = new SqlCommand("update 收费表 set 单价=" + s.Trim() + ",收费年度='" + t.ToString().Trim()
+ "' where id=" + ID.Trim(), cn);
cm.ExecuteNonQuery();
GridView1.EditIndex = -1;
this.createdb();
cn.Close();
}
catch (Exception exc)
{
Response.Write(exc.Message);
}
} --------------------编程问答-------------------- TextBox user = (TextBox)row.Controls[5].Controls[0]
debug到这句看看 row中是否有controls[5] --------------------编程问答-------------------- row.cells[x].controls[5].controls[0] --------------------编程问答--------------------
列有5这一列呀,有许多列呢 --------------------编程问答-------------------- row.cells[5].controls[0] --------------------编程问答--------------------
这个也试过,不行 --------------------编程问答-------------------- 模板列的话试一下row.cells[5].controls[1] --------------------编程问答-------------------- row.cells[5].FindControl("控件名称")这样访问应该可以把 --------------------编程问答-------------------- --------------------编程问答-------------------- 这样绝对可以的!!
我试了!! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 最好用模版列,然后用FindControl去找
补充:.NET技术 , .NET Framework