0

GridView と GridView 内の HiddenField に問題があります。基本的に各レコードのrow_idであるHiddenFieldの値に基づいてデータを取得しようとしていますが、何らかの理由で、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 コレクション全体を反復処理しているため、最後に行 ID がグリッドビューの最後の行 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 に答える