2011-12-21 7 views
0

データベースのデータでいっぱいになっているASP.NETのgridviewコンポーネントがあります。また、DropDownListコンポーネントを含むgridviewにテンプレートフィールドを追加しました。私は別のボタン(gridviewフィールドではない)も作成しました。このボタンをクリックすると、プログラムはすべてのGridView行を調べ、各行のDropDownListをチェックし、0以外の値を選択したDropDownListが見つかると、その行の詳細をセッションに送ります別のページ。次のようにコードは次のとおりです。GridViewからDropDownListの値を読み取る際の問題

protected void CheckoutButton_Click(object sender, EventArgs e) 
{ 
    int n = 0; 

    foreach (GridViewRow row in GridView1.Rows) 
    { 
     if (((DropDownList)row.FindControl("DropDownList1")).SelectedItem.Value == "0") 
     { 
     } 
     else 
     { 
      n++; 
      Session["ProductList" + n] = row.Cells[0].Text; 
      Session["QuantityList" + n] = row.Cells[5].Text; 
      Session["NumberofResults" + n] = n; 
     } 
    } 
} 

私が午前の問題は、「チェックアウト」ボタンをクリックしたときに、DropDownListコントロールから読み込まれる値は、ユーザが選択した値が、そのデフォルト値ではないということです。基本的に、CheckoutButton_Clickメソッドのコードが実行される前に、ドロップダウンリストの値がデフォルトに戻されます。

どのようなアイデアをお願いしますか?

+1

Page_Loadイベントのグリッドをバインドするコードはありますか?グリッドのようなサウンドは、PostBackに再バインドされています。 –

+0

はいデータベースのデータをPage_Loadイベントのgridviewにバインドします。その後、どんな提案?ありがとう! – lvella

+0

Page_Loadイベントのコード例を投稿できますか。ありがとうございます。 –

答えて

0

Page_Loadイベントでコードをif(!IsPostBack)にラップして、選択した値が保持されていることを確認する必要があります。

関連する問題