我做了一个gridview,其中一列为checkbox点击某按钮后,将gridview中checkbox被选中的行选出来做处理,代码如下问题是,调试代码过程中,选中的checkbox也说没有选中
         protected void Button10_Click(object sender, EventArgs e)
        {
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
                if (cbox.Checked == true)
                {
                    ...//处理代码
                }
                else
                {
                    ...//处理代码
                }
            }
        }

解决方案 »

  1.   

    Button10_Click被调用之前,是不是你的GridView1被重新绑定重新创建了?比如在page_load中缺乏 if(!IsPostback)判断?
      

  2.   

    你可以把那本老教程中的例子做一遍,然后对照一下你的代码。写代码越少越好,代码写的少,说明你的精力都放在设计上了。代码写的多,说明更容易出现bug。
      

  3.   

     foreach (GridViewRow dr in GridView2.Rows)//
                {                RadioButton rdA = (RadioButton)dr.FindControl("rdA");
                    RadioButton rdB = dr.FindControl("rdB") as RadioButton;
                    RadioButton rdC = dr.FindControl("rdC") as RadioButton;
                    RadioButton rdD = dr.FindControl("rdD") as RadioButton;
                    string Answer = "";
                    if (rdA.Checked)
                    {
                        Answer = "A";                }
                    else if (rdB.Checked)
                    {
                        Answer = "B";
                    }
                    else if (rdC.Checked)
                    {
                        Answer = "C";
                    }
                    else if (rdD.Checked)
                    {
                        Answer = "D";
                    }
                    else
                    {
                        Answer = "";
                    }
    就算选中 调试的时候checked也是false 
    不知所措中~~
      

  4.   

    之前,我 也到了这个问题,我用到的解决办法是捕捉ontreenodecheckchanged时间。
    前台:<asp:TreeView ID="TreeView1" ShowCheckBoxes="All" runat="server"  
                ShowLines="True" ontreenodecheckchanged="Node_CheckChanged" >
    后台:protected TreeNodeCollection tnodelist = new TreeNodeCollection();
    protected void Node_CheckChanged(object sender, TreeNodeEventArgs e)
        {
            tnodelist.Add(e.Node);
        }
      

  5.   

    是不是调用Button之前页面刷新了
      

  6.   

    应该是缺少IsPostback  等你点击确认后 页面会重新回发滴 当然取 不到值咯
      

  7.   

    英明!!我只知道IsPostback判断是否是首次加载 不知道还有绑定控件有关 我load页面加 if (!Page.IsPostBack){..}就好使了  谢谢了 困扰我两天了
      

  8.   

    page_load中加入ispostback就好了,因为如果不加入这个的话,点击按钮都会重新加载页面,使控件刷新