【问题标题】:cant get a value in DataKeys to show up in Response.Write asp无法在 DataKeys 中获取值以显示在 Response.Write asp 中
【发布时间】:2013-11-22 14:33:22
【问题描述】:

我有一个带有复选框的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 仍然应该显示一些东西,但没有任何反应。我正在尝试验证代码是否确实有效,以便稍后传递行值。任何建议将不胜感激。

【问题讨论】:

    标签: c# asp.net gridview checkbox


    【解决方案1】:

    试试这个,

    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"];);
      }
    }
    

    【讨论】:

    • 谢谢,我使用了你的代码,虽然我今天意识到我正在调用应该进入列表的值,我必须从错误的类中填充 GridView!这确实是问题的一部分,因为我收到一个错误,告诉我密钥的值是无限的。在这些更正之后,一切都很好,我没有像以前那样费心使用 foreach 循环,尽管我认为这不会有什么不同,但感谢您的关心回答。我有点绝望,在发布之前我没有彻底检查我的代码,但是嘿,嘘……发生了!
    猜你喜欢
    • 1970-01-01
    • 2012-12-14
    • 2018-07-27
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多