我有一个带有复选框的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
仍应显示一些东西,但没有任何反应。我正在尝试验证代码实际上是否正常工作,以便稍后传递行值。任何建议都会非常感激。
答案 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"];);
}
}