0

ここでは、asp.net Web アプリケーションのダイナミック グリッドにチェック ボックスを動的に作成する必要があります。次のコードを使用して適切な処理を行い、検索コントロールを使用してこれらの ID を取得する必要がありますが、次の((CheckBox)GrdShiftDetails.FindControl(Convert.ToString(vStrchkboxId))).Checked ようなエラー メッセージが表示されます。

Null 参照 (オブジェクト参照がオブジェクトのインスタンスに設定されていません)

この問題を解決するために私を助けてください。

if (GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text != "00:00-00:00") {
            CheckBox chk = new CheckBox();
            chk.ID = "chk" + VintCurrentRow + coloumcount;
            chk.Checked = true;
            chk.Text = GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text;
            GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Controls.Add(chk);
            // GrdShiftDetails.Rows[grdRow].Cells[coloumcount]
        }
        else {              
            CheckBox chk = new CheckBox();
            chk.ID = "chk" + VintCurrentRow + coloumcount;
            chk.Checked = false;
            chk.Text = GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text;
            GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Controls.Add(chk);
        }
    }
4

3 に答える 3

0

を追加

if(GrdShiftDetails.Rows.Count > 0 && GrdShiftDetails.Columns.Count > 0)
{

// your code
(GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text != "00:00-00:00") {
            CheckBox chk = new CheckBox();
            chk.ID = "chk" + VintCurrentRow + coloumcount;
            chk.Checked = true;
            chk.Text = GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text;
            GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Controls.Add(chk);
            // GrdShiftDetails.Rows[grdRow].Cells[coloumcount]
        }
        else {              
            CheckBox chk = new CheckBox();
            chk.ID = "chk" + VintCurrentRow + coloumcount;
            chk.Checked = false;
            chk.Text = GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Text;
            GrdShiftDetails.Rows[VintCurrentRow].Cells[coloumcount].Controls.Add(chk);
        }
    }
}
于 2013-01-12T06:06:53.153 に答える
0

追加した CheckBox を見つけようとしている場合: これを試してください:

// vStrchkboxId が CheckBox の必要な ID であると仮定します

   for (int i = 0; i < GrdShiftDetails.Rows.Count; i++)
       if(((CheckBox)GrdShiftDetails.FindControl(Convert.ToString(vStrchkboxId))).Checked)
           //do something here.
于 2013-01-12T19:06:59.207 に答える
0

これを試して:

foreach (GridViewRow objRow in GrdShiftDetails.Rows)
{
   TableCell cCheckCell = new TableCell();
   CheckBox chkCheckBox = new CheckBox();
   cCheckCell.Controls.Add(chkCheckBox);

   objRow.Cells.Add(cCheckCell);
}
于 2013-01-12T18:05:49.920 に答える