簡體   English   中英

回發后文本框失去價值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM