我写了一个动态添加控件的程序,程序如下所示,现在的问题是我不想使用动态控件中的viewstate,
但是设置EnableViewState不起作用,当我设置cbl的第一项选中时,每次postback都是第一项选中,请大家帮忙看一看:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
TableCell tc2=new TableCell(); 
CheckBoxList cbl=new CheckBoxList();
cbl.ID="ckb1";
for(int i=0;i<7;i++)
{

ListItem li=new ListItem("test","test");
li.Selected=false;
cbl.Items.Add(li);
cbl.Controls[0].EnableViewState=false;

}
cbl.AutoPostBack=false;
cbl.EnableViewState=false;
CheckBox cbx=(CheckBox)(this.FindControl("ckb1_0"));
tc2.Controls.Add(cbl);
}

解决方案 »

  1.   

    要第一次回传之后才设置了false
      

  2.   

    看不懂,两个地方:1. this.FindControl("ckb1_0"));是在哪个范围内查找,找什么?2. tc2产生了,往里边装入了一个checkboxlist,然后丢弃了,跟页面的控件没有发生关系。这段代码多余的,删除了也不会有任何影响。你这样写是何意?
      

  3.   

    private void Page_Load(object sender, System.EventArgs e)
    {
        if(!Page.IsPostBack)   //这里加这一句
        {
            ...; //你上面Page_Load里面的代码
        }
    }