如题,解决了马上给分

解决方案 »

  1.   


    代码是这样的 ,当我选中 chkBig 时跟踪了 chkBig 总是false 
    for (int i=0; i < DataList1.Items.Count; i++)
            {
                CheckBox chkBig = (CheckBox)DataList1.Items[i].FindControl("chkBig");
                          if (chkBig.Checked)
                {
                             
                }
            }
      

  2.   

    回发之后,你的DataList1什么时候创建(绑定)Items的?贴出代码。
      

  3.   

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
               
                //绑定数据 
            }    }
      

  4.   

    如果写了“if (!Page.IsPostBack)”,那么如何获得datalist中的checkbox?对于asp.net2.0来说,如果写了这个判断,那么你在获取checkbox之前肯定还要在其它地方重新绑定数据,这种绑定根本不能获得post值。估计问题就出现在这里。这种if (!Page.IsPostBack)判断是错误的。要注意,asp.net2.0与asp.net1.1控件创建机制中(愚蠢地)微妙地不兼容。在asp.net1.1中,在page_load之后的某个事件中(页面render方法之前),重新绑定数据到datalist可以立刻从datalist的items中获得客户端post的值。但是在asp.net2.0中,绑定数据必须放在page_load结束以前,否则就无法获得post值。
      

  5.   

    如果你看书上或者网上的例子,要注意很多例子还是用asp.net1.1的程序来充作asp.net2.0的例子使用。自己写一些利用各种控件的小程序体会一下这种post值的时机的差别,要把这个看清楚,不然你在读例子代码的时候还会抄到asp.net1.1代码而不知。
      

  6.   

    仅仅对动态增加的控件如此(而DaatList中的Items很不幸永远都是就是动态增加的),例如运行时创建一个TextBox并且设置好ID然后加入(Controls.Add)页面控件树。对于那些在page_load之前已经增加的控件,例如在aspx或者ascx文件上写的TextBox没有影响,它们在page_init之前就已经创建了。
      

  7.   

    谢谢大家 错误找到了 就是没有在 ispostback 中绑定 马上给分