我动态生成了一个Textbox(在服务器用代码生成),然后我在程序运行过程中,对该box输入一些内容。然后单击保存按钮后,页面回来。结果我输入在textbox内容不见了。请问,我要在textbox输入的内容及时的保存起来要如何做?

解决方案 »

  1.   

    我想在单击保存按钮后,在page_Load事件前执行一段代码来保存我输入的textbox内容。请问我该怎么做?
      

  2.   

    我将他做为一个webcontrol保存在Session中。每次在pageload的时候恢复过来。可是在单击保存按钮后,马上就执行了pageload。有什么办法在单击保存按钮后,先保存textbox到session中,然后在让系统执行pageload。
      

  3.   

    用 ispostback 属性设置一下 不然你提交后服务器重新加载页面 动态生成的控件是新的了 当然没有值了 
    把生成控件的代码放到
    if(!ispostback)
    {
    //代码
    }
    里面
      

  4.   

    if (!IsPostBack)
                {
                    TextBox aa = new TextBox();
                    aa.Text = "动态添加上";
                    aa.EnableViewState = true;
                    aa.AutoPostBack = true;
                    Panel2.Controls.Add(aa);
                }
    ================================
    如此这般设置后,按保存按钮,aa不出现在页面上。我用的是VS.net 2005
      

  5.   

    我在textbox中输入完数据后,按保存按钮。这个时候页面就重新加载。而textbox中的内容丢失。我确定我只添加这个textbox一次。
      

  6.   

    我的思路是这样的。
    1:在pageload中用if (!IsPostBack)
                {动态创建组件,放到一个数组中。
    将他们保存到session中。
    }else
    {
    从session中恢复过来。
    }
    2:在动态创建的组件上输入数据。
    3:单击保存。
    4:从动态组件中获取数据(动态组件都放在一个数组中)。
    我希望的结果是单击保存后,再次从session中恢复来的动态创建组件的text值跟单击保存按钮前的是一样。实际上,用户在动态创建的组件(如textbox)中输入的内容在按了保存按钮后,那个内容没有。而直接拖放的textbox,保存后依然会存在。除非你用代码清空它或者删除它。
    我这样说,不知道你们明不明白。
      

  7.   

    页面加载时用到 Response.Redirect() 了吧,去掉这个就没这事了。
      

  8.   

    我的msn:[email protected]
    用及时聊天工具教教我。分一定不会少你的。
      

  9.   

    !IsPostBack或session或viewstate应该都可以
      

  10.   

    问题解决了,写了一个函数:
    该函数在if(IsPostBack){......... InitFieldPlayControl(this.form1);......}调用。public bool InitFieldPlayControl(HtmlForm SourForm)
            {
                Control TempControl;
                foreach (FTField TempField in TCurrency.Fields)
                {
                    if (TempField.PlayControl != null)
                    {
                        TempControl = SourForm.FindControl(TempField.PlayControl.ClientID);
                        if (TempControl != null)
                        {
                            if (TempField.PlayControl is TextBox)
                            {
                                ((TextBox)TempField.PlayControl).Text = ((TextBox)TempControl).Text;
                            }
                            else
                            {
                                if (TempField.PlayControl is DropDownList)
                                {
                                    ((DropDownList)TempField.PlayControl).Text = ((DropDownList)TempControl).Text;
                                }
                            }
                        }
                        TempControl = SourForm.FindControl(TempField.SearchControl.ClientID);
                        if (TempControl != null)
                        {
                            if (TempField.SearchControl is TextBox)
                            {
                                ((TextBox)TempField.SearchControl).Text = ((TextBox)TempControl).Text;
                            }
                            else
                            {
                                if (TempField.SearchControl is DropDownList)
                                {
                                    ((DropDownList)TempField.SearchControl).Text = ((DropDownList)TempControl).Text;
                                }
                            }
                        }
                    }
                }
                return true;
            }
      

  11.   

    FTField 是我自定义的一个存放字段结构的信息的类。每个字段在创建的时候就自动添加了显示该字段数据的控件。PlayControl