//////当点Button1控件时,l.text为什么不能保值?
Label l=new Label();
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
l.Text="load";
}
label.Controls.Add(l);
}
private void Button1_Click(object sender, System.EventArgs e)
{}

解决方案 »

  1.   

    但这样为什么可以保值?
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
                      label.Text="load";
    // l.Text="load";
    }
    // label.Controls.Add(l);
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {}
      

  2.   

    第二个能保留值是label的功劳,不是l保留的。
    Label l=new Label();在if(!IsPostBack)外面,每次刷新页面的时候l就new了,所以值没了。
      

  3.   

    每次刷新都new 了 一个 label。
    而且都执行了label.Controls.Add(l);
    当然保存不了值了。
      

  4.   

    不对,如果我在button2里改值,那么,不管怎么按button1都能保值,我就是不明白:(
    Label l=new Label();
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    l.Text="load";
    }
    label.Controls.Add(l);
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    }
    private void Button2_Click(object sender, System.EventArgs e)
    {
    l.Text="新值";//这样会保值。
    }
      

  5.   

    按button是会postback的,会执行Label l=new Label();的
    也会执行private void Page_Load(object sender, System.EventArgs e)里面的语句。
      

  6.   

    求求你们了,帮帮忙吧!!!
    http://community.csdn.net/Expert/topic/3684/3684758.xml?temp=.9476129
      

  7.   

    解答:http://community.csdn.net/Expert/topic/3687/3687452.xml?temp=.015423
      

  8.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    Label l=new Label();
             l.Text="load";
    label.Controls.Add(l);
    }
    放在!IsPostBack语句的外面,每次回传页面都要重新生成这样能保存住值
      

  9.   

    MSDN中有这样一句描述,不知道你有没有看到过,大致的意思是“ASP.NET不为用户动态创建的控件保存状态”,由于HTTP是无状态协议,所以页面里的控件会自动保存状态,但你用代码创建的控件需要用代码来自己维护状态,做法是附值时在ViewState或者Session等里保存值,然后在 Page_Load 里从Viewstate读取值,附给控件,以便显示。