我的Panel里有一个TextBox,若我手动TextBox里输值的话没有问题,Panel隐藏再显示都会存在,但是我用弹出窗口返回的值放在TextBox里的话直接就没有了,,怎么才能让这个值保存下来??

解决方案 »

  1.   

     protected void Button1_Click(object sender, EventArgs e)
        {
            txt.ReadOnly = false;
            StringBuilder s = new StringBuilder();
            s.Append(" <script language=javascript>");
            s.Append("var a=showModalDialog('Search.aspx','','width=480,height=380,left=250,top=250');");
            s.Append("if(a!=null)");
            s.Append("document.all('txt').value=a;");
            s.Append(" </script>");
            Type cstype = this.GetType();
            ClientScriptManager cs = Page.ClientScript;
            string sname = "lt";
            if (!cs.IsStartupScriptRegistered(cstype, sname))
                cs.RegisterStartupScript(cstype, sname, s.ToString());
            txt.ReadOnly = true;
            
        }     //这一部分是弹出窗口返回值放到一个ID为txt的TextBox当中    protected void Button2_Click(object sender, EventArgs e)
        {
            if (Panel1.Visible)
            {
                Panel1.Visible = false;
            }
            else
            {
                Panel1.Visible = true;
            }
        }     
    点击Button2后就会出现丢失TextBox的值.
      

  2.   

    testbox设为只读属性的时候,是取不到值的
      

  3.   

    我知道呀,,所以在最开始的时候ReadOnly是设为False的,把值添加进去后才设为True的..而且我现在的问题不是说窗口传不过来值,而是传过来的值在对Panel进行操作后马上就没了!~
      

  4.   

    刚刚试了一下,,确实去掉ReadOnly属性之后可以在Panel操作时保存数据,,但我这个数据是想让人选的,,如果不设为只读的话,别人可以随便手写或者改,,万一他写的或改的数据不规范,,那我就没法往数据库里放了!~~~