我在GridView中遇到GridView和HiddenField的问题。我试图基于HiddenField的值来提取一些数据,这基本上是每个记录的row_id但是由于某种原因,无论我在GridView中选择哪一个,我都会得到相同的数据。下面的代码是我在GridView中使用查找HiddenField的代码。
任何帮助将不胜感激。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
foreach (GridViewRow item in GridView1.Rows)
{
if (item.RowType == DataControlRowType.DataRow)
{
rowid = (HiddenField)(item.Cells[0].FindControl("po_id_hf"));
}
}
GridView2.DataSource = View_SP.v_asn_detail_by_asn_number(Int32.Parse(rowid.Value));
GridView2.DataBind();
step2.Visible = false;
step3.Visible = true;
}
答案 0 :(得分:4)
如何使用:
GridView1.Rows[e.RowIndex]
获取当前更新行?
编辑:您的代码将始终返回最后一个GridViewRows,因为它遍历整个GridViewRows集合,因此在结束时rowid将在gridview中具有最后一行ID。答案 1 :(得分:0)
我在想这个,下面是解决方案:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string row_id = (((HiddenField)(GridView1.Rows[e.RowIndex].FindControl("po_id_hf"))).Value);
GridView2.DataSource = View_SP.v_asn_detail_by_asn_number(Int32.Parse(row_id));
GridView2.DataBind();
step2.Visible = false;
step3.Visible = true;
}
谢谢你们。