0

私の問題は:

チェックボックスの列を持つ宣言されたDTOオブジェクトのリストにバインドされているGridViewがあります。また、ページに「保存」ボタンがあります。私の使命は、CheckBoxがチェックされ、含まれているデータを取得するすべての行を取得することで終了します。残念ながら、Button1_Clickではrow.DataItem = nullです。これは、if(!IsPostBack)gw.DataBind()ステートメントを使用しているためです(そうでない場合、CheckBoxステータスを取得できません)。問題を解決するためのベストプラクティスを教えてください。

前もって感謝します!

4

1 に答える 1

1

を実行するif(!IsPostBack) --> gw.DataBind()と、が再初期GridView化され、チェックボックスが再びオフに設定されます。

あなたの場合、イベントでは、あなたはあなたのButton1_Clickそれぞれをループして、チェックボックスがチェックされている行を見つけて、選択されたすべての行データを取得することができます。DataRowGridView

foreach (GridViewRow gvRow in gw.Rows) {
// Find your checkbox
    CheckBox chkBox = (CheckBox)gvRow.FindControl("checkBox");

    if (chkBox.Checked) {
    // Get your values 
        string value1 = gvRow.Cells[1].Text;
        string value2 = gvRow.Cells[2].Text;
        // etc...
    }
}
于 2012-02-05T18:47:54.523 に答える