我做一个用户注册系统,前面要在textbox中输入输入密码,后面要上传一幅图片,每次点上传按钮后textbox中密码会丢失,他们的顺序是不能调换的,而且他们要放在同一个页面中。然后点上传按钮把密码放在一个Session变量中 ,上传后再放在textbox中。当TextMode="Password" 时发现不能添加默认值,普通的textbox可以。该如何解决呢?还有一个问题是点击上传后防止刷新再次上传图片 ,但允许用户上传后重新点击浏览重新上传,我用一个变量UpDate 做的判断 发现二者不能兼顾,该如何解决呢?有简单的代码最好了 。谢谢了!

解决方案 »

  1.   

    上传图片及显示图片普遍的作法是异步AJAX
    放在UPDATEPANEL里
      

  2.   


     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                UpData = false;
            }
            else
            {
                pass.Text = Session["pass"].ToString();
            }      
        }       protected void Button1_Click(object sender, EventArgs e)
        {
            if (UpData) return;
                Session["pass"] = pass.Text.ToString();
                if (FileUpload1.HasFile)
                {
                    //code
                }
                else
                {
                   //code
                }            pass.Text = Session["pass"].ToString();
                UpData = true;
        }
      

  3.   

    你点上传按钮时重新刷新了。密码的textbox没有viewstate,所以丢失啊。。你可以不单独上传图片,可以在保存密码的时候一起上传图片。即两个同一按钮。
    密码的textbox开viewstate,用服务器控件试试。也可以用ajax 异步操作。这样就不会刷新页面产生postback。
      

  4.   

    this.PasswordTextBox.Attributes.Add("value", this.PasswordTextBox.Text);
      

  5.   

    protected void Button1_Click(object sender, EventArgs e)
        {
            if (UpData) return;
                Session["pass"] = pass.Text.ToString();
                if (FileUpload1.HasFile)
                {
                    //code
                }
                else
                {
                   //code
                }            pass.Text = Session["pass"].ToString();
                UpData = true;
              pass.Attributes.Add("value", pass.Text);
        }