【问题标题】:Checkbox checked event in gridviewgridview中的复选框选中事件
【发布时间】:2025-12-09 11:15:01
【问题描述】:

我有两个绑定字段和一个项目模板上的模板我有一个复选框现在我想检查选中的复选框并想要检索复选框文本我在行数据绑定中找到了控件但问题是尽快我调试代码没有继续,它在这个事件下循环:

protected void ProdView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        CheckBox ch1 = (CheckBox)e.Row.FindControl("CheckBox1");
        if (ch1.Checked == true)
        {
            Session["rechargeid"] = ch1.Text;
        }
    }
}

并且没有继续,有人可以建议我一种可能的方法吗......?

【问题讨论】:

    标签: c# gridview checkbox


    【解决方案1】:
    foreach (GridViewRow rw in gv_discpoint.Rows)
    {
        CheckBox chkfill = (CheckBox)rw.FindControl("txtchk");
        TextBox txtaction = (TextBox)rw.FindControl("txtAction");
        TextBox txttarget = (TextBox)rw.FindControl("txttarget");
        if (chkfill.Checked == true)
        { // do something }
        else if (chkfill.Checked == false)
        { // do something }
    }
    

    【讨论】:

    • 每次页面加载时它都无法正常工作,它进入了一个无限循环,它必须是因为每次页面加载 grid_rowdatabound 调用但这个问题解决了我的问题......请建议我一种可能的方法...
    • 不要通过按钮点击或任何其他事件来使用页面加载事件
    【解决方案2】:

    仅供参考RowDataBound 事件在数据绑定到网格视图时起作用。例如,如果您将数据表绑定到网格视图并且数据表有 5 行,RowDataBound 会触发 5 次(有时更多)。

    从了解您的问题开始,您需要一些回发方法(通过单击按钮)来获取所有选中复选框的文本。如果您保留一个按钮并且单击它应该会满足您的需求,则代码如下

     protected void button_Click(object sender, EventArgs e)
     {
    
           for(int i=0; i<gridView.Rows.Count; i++)
           {
               CheckBox cb = (CheckBox)gridView.Rows[i].FindControl("CheckBox1");
               if (cb.Checked == true)
               {
    
                   // use cb.Text to retrieve the checkbox text
               }
    
           }
     }
    

    【讨论】:

      最近更新 更多