0

chechboxがチェックされている行を無効にする必要があります。次のコードを使用してRowDataBoundイベントで試しましたが、エラーが表示されますObject reference not set to an instance of an object

  CheckBox cbAttachClrReq = (CheckBox)gvEntity.FindControl("chkAdd");

  if (cbAttachClrReq.Checked)
  {
      this.gvEntity.Rows[e.Row.RowIndex].Enabled = false;
  }
4

3 に答える 3

1

CheckBoxオブジェクトがである可能性がありますnullnullそのため、コードにチェックも追加しました。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    CheckBox cbAttachClrReq = e.Row.FindControl("chkAdd") as CheckBox;

    if (cbAttachClrReq != null && cbAttachClrReq.Checked)
        e.Row.Enabled = false;
}

コメントからの貴重な提案に基づいて追加されました。オブジェクトが次の場合、状態を切り替えることもできCheckBoxますnull

if (e.Row.RowType == DataControlRowType.DataRow)
{
    CheckBox cbAttachClrReq = e.Row.FindControl("chkAdd") as CheckBox;
    e.Row.Enabled = cbAttachClrReq == null || !cbAttachClrReq.Checked;
}
于 2012-10-31T06:17:40.563 に答える
1

次のことを試してください...チェックボックスがグリッドビューの行にあると仮定します....

protected void gvEntity_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       CheckBox cbAttachClrReq = (CheckBox) e.Row.FindControl("chkAdd");

      if (cbAttachClrReq.Checked)
      {
          e.Row.Enabled = false;
      }       
    }

}
于 2012-10-31T06:19:29.643 に答える
0

次のことを試してください...チェックボックスがグリッドビュー行のセルにあると仮定します...。

protected void gvEntity_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       CheckBox cbAttachClrReq = (CheckBox) e.Row.Cells[yourCellIndexOFChBox].FindControl("chkAdd");

      if (cbAttachClrReq.Checked)
      {
          e.Row.Enabled = false;
      }       
    }

}
于 2012-10-31T06:35:59.080 に答える