0

我对 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;
}
4

2 回答 2

4

如何使用:

GridView1.Rows[e.RowIndex]

获取当前更新行?

编辑:您的代码将始终返回最后一个 GridViewRows,因为它正在遍历整个 GridViewRows 集合,因此最后 rowid 将在 gridview 中具有最后一个行 id。

于 2012-10-04T20:43:14.503 回答
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;
}

感谢你们。

于 2012-10-04T20:49:09.230 回答