1. 程式人生 > >asp.net記住密碼功能之密碼框不能賦值

asp.net記住密碼功能之密碼框不能賦值

一、設定密碼框

在asp.NET中密碼框並不神奇,只是將普通TextBox的TextMode屬性值修改為Password即可;

二、防止頁面重新整理清空密碼框

TextBox一旦被修改為密碼框,其填充的值會隨著頁面的重新整理而被清空,處理方法如下:

在頁面後臺,Page_Load函式中新增一段程式碼:

        if (this.txtPassword.Text != "")//防止頁面重新整理,密碼文字被清空
        {
            this.txtPassword.Attributes["value"] = this.txtPassword.Text;
        }

其中,txtPassword為密碼框的ID,其他照寫即可;

注意:該if語句必須寫在if (!IsPostBack){。。。}外面,否則不起作用!

三、清空密碼框的值

按照第二步驟中,在頁面重新整理時密碼框中的值不會被清空了,但是如果我們進行清空或者重置操作時,應該怎麼清空密碼框中的值呢?

也許你會說,直接this.txtPassword.Text=““不就行了嘛。實際則不是!

此時清除需要清除密碼框的value的值,即this.txtPassword.Attributes["value"]=”“;

四、從後臺給密碼框賦值

如果密碼值已經從資料庫中讀取,需要賦給密碼框,直接賦值this.txtPassword.Text=dr.rows[0]["password"].tostring();

你會發現密碼框中根本不會顯示資料的,處理方法如下:

                string passWord = PortUserDT.Rows[0]["password"].ToString();
                StringBuilder str = new StringBuilder();
                str.Append("<script language=JavaScript>");
                str.Append("document.all('" + txtPassword.ClientID + "').value='" + passWord + "';");                
                str.Append(@"</script>");
                Page.ClientScript.RegisterStartupScript(Page.GetType(), ".", str.ToString());