无法在DataKeys中获取值以显示在Response.Write中

时间:2013-11-22 06:21:04

标签: c# asp.net gridview checkbox

我有一个带有复选框的gridview,我想捕获它以了解被检查的行。问题是代码似乎没有超过检查复选框控件的条件。我已将复选框放在模板中以使其工作,我调用了控件addCart 现在我有以下代码:

protected void addCart_HandleClick(object sender, EventArgs e)
        {
            foreach (GridViewRow fila in GridCol.Rows)
            {
                CheckBox addCart = (CheckBox)fila.FindControl("addCart");
                if (addCart.Checked)
            {Response.Write(GridCol.DataKeys[fila.RowIndex].Value + "Cantidad: " + fila.Cells[3].Text);
                rowSel.Text = GridCol.DataKeys[fila.RowIndex].Value.ToString();

但是,虽然我调试时可以看到addCart的Checked值变为true,但没有显示任何内容。我想知道我是否错误地使用了Response.Write,但我认为标签rowSel仍应显示一些东西,但没有任何反应。我正在尝试验证代码实际上是否正常工作,以便稍后传递行值。任何建议都会非常感激。

1 个答案:

答案 0 :(得分:2)

试试这个,

for (int i = 0; i < YourGridViewID.Rows.Count; i++)
{

 GridViewRow row = YourGridView.Rows[i];
 bool isChecked = ((CheckBox) row.FindControl("yourCheckBoxID")).Checked;

  if (isChecked)
  {
    Response.Write((string)this.YourGridViewID.DataKeys[i]["yourColumnDataKey"];);
  }
}