[英]Textbox losing value after postback
我的頁面是注冊頁面,用戶在其中輸入電子郵件地址和密碼。 這是我的點擊事件:
protected void btnRegister_Click(object sender, EventArgs e)
{
MembershipCreateStatus createStatus = MembershipCreateStatus.ProviderError;
MembershipUser user = Membership.CreateUser(txtUsername.Text,
txtPassword.Text, txtEmail.Text, null, null, true, out createStatus);
if (createStatus != MembershipCreateStatus.Success)
{
cvUser.IsValid = false;
cvUser.ErrorMessage = "Invalid";
}
else
Response.Redirect("Home");
}
這是我的頁面:
<asp:ValidationSummary ID="vs" runat="server" />
<asp:TextBox ID="txtUsername" runat="server" />
<asp:TextBox ID="txtEmail" runat="server" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" />
<asp:Button ID="btnRegister" runat="server" OnClick="btnRegister_Click" />
<asp:CustomValidator ID="cvUser" runat="server" ControlToValidate="txtEmail" />
cvUser
是我正在使用的頁面上的自定義驗證器,因此錯誤消息將顯示在ValidationSummary
。
因此,當用戶創建失敗時,就會發生此問題。 我將cvUser.IsValid
設置為false,以便顯示錯誤,然后重新加載頁面。 僅在頁面重新加載時,我的文本框中的所有數據才消失。
有沒有辦法維護這些數據?
回發之后,有必要手動重新填充表單項,或確保其值不會被覆蓋。 后者可以通過在Page_Load方法中放置任何表單填充代碼來完成,但可以將它們包裝在if(!IsPostBack){}塊中。
if (!IsPostBack)
{
//populate form items
}
else //this is a post back
{
//do nothing
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.