我在后台循环生成了一些input type="text" 的文本框  但是在事件执行后 文本框内容要被清空,用户输入也等于白输入了,所以 请求一种方法 当页面被刷新时 也不会清空文本框的值(前提是在执行事件时),请教各位怎么处理?

解决方案 »

  1.   

    建议你把按钮放在一个Updatepanel中。
      

  2.   

    确定在执行事件的时候没有再次执行循环生成input的代码
      

  3.   

    Input 的文本框太多了。。
      

  4.   

    要生成服务器控件,不然没有viewstate的
      

  5.   

    既然是HTML控件
    就不要再服务器生成了 客户端纯js即可
    不然控件状态很难维持
    我这有个GridView的操作 不知道是否符合你的需求
    传送门
      

  6.   

    runat="server";
    要不直接混写代码给赋值就好了.
      

  7.   

    cookie保存数据function setCookie(name,value)
    {
      var Days = 30;
      var exp = new Date();   
      exp.setTime(exp.getTime() + Days*24*60*60*1000);
      document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    function getCookie(name)
    {
      var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
      if(arr=document.cookie.match(reg)) return unescape(arr[2]);
      else return null;
    }
    function delCookie(name)
    {
      var exp = new Date();
      exp.setTime(exp.getTime() - 1);
      var cval=getCookie(name);
      if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
    }
      

  8.   

    默认情况是根本不清空这些值的,真正清空你还要单独写代码呢你怎么刷新的?  不是用了redirect吧?   你的代码肯定有问题贴出来吧
      

  9.   

    html控件、还是用cookies保存好。。
      

  10.   

    把你生成input的代码贴出来看看吧
      

  11.   

    后台:
    public string txtvalue=mode.value==null?"":mode.value;<input type="text" value="<%=txtvalue%>" />
    这个不行?
      

  12.   

    15L  我在后台生成的代码 肯定是在后台绑定啊 <input type="text" value="<%=txtvalue%>" /> 你这个是在前台赋值啊
      

  13.   

    这中情况一般用9楼和13楼的办法,用Cookies保存能解决问题
      

  14.   

    前面放一个panel 后面 add
      

  15.   

    好吧,这里我是在页面拉了20个TextBox,后台遍历的
      

  16.   

    哈哈 刚写了个跟你这类似的东西前台代码                    <asp:Table ID="tbContent" runat="server">
                        </asp:Table>
    后台代码            for (int i = 0; i < iRows; i++)
                {
                    TableRow tr = new TableRow();                for (int j = 0; j < 2; j++)
                    {
                        TableCell tc = new TableCell();
                        if (j == 0)
                        {
                            Label la = new Label();
                            la.Text = s[i] + ":";
                            tc.Controls.Add(la);
                            tr.Cells.Add(tc);
                        }
                        if (j == 1)
                        {
                            TextBox txt = new TextBox();
                            txt.ID = "TextBox" + i.ToString();
                            txt.Text = odr[i].ToString();
                            //txt.Height = "111";
                            //txt.Height = 30;
                            tc.Controls.Add(txt);
                            tr.Cells.Add(tc);
                        }
                        tbContent.Rows.Add(tr);
                    }
                }
    不知道对你有帮助没?
    我这是动态生成 TextBox 和lable 的~!