我的页面是注册页面,用户在其中输入电子邮件地址和密码。这是我的点击事件:
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,以便显示错误,然后页面重新加载。只有当页面重新加载时,我的文本框中的所有数据都将消失。
有没有办法维护这些数据?
答案 0 :(得分:0)
回发后,需要手动重新填充表单项,或确保不覆盖其值。后者可以通过在Page_Load方法中放置任何表单填充代码来完成,但包含在if(!IsPostBack){}块中。
if (!IsPostBack)
{
//populate form items
}
else //this is a post back
{
//do nothing
}