不知道這裏出了什麼問題。這是由其他人開發的頁面,我正在嘗試解決其中一個問題。asp:CustomValidator不返回'false'
場景:
ASP.NET網站。
Login.aspx有<asp:login>
並且有三個驗證組。 Login.aspx.cs是「user_login」的部分類。
每個驗證組都有一個文本框和一個關聯customvalidator。當在相應的文本框中輸入內容時,所有三個自定義驗證器都會被觸發,但問題只是第一個文本框(綁定到validationgroup = 1)在驗證失敗時返回false。
對於第二個和第三個,customvalidator會被觸發,但是如果存在驗證問題,甚至在設置「args.IsValid = false;」之後,該過程將繼續進行,需要進一步執行。
不知道這裏發生了什麼問題。我希望customvalidator返回false。最糟糕的情況是,有什麼方法可以在驗證失敗時將控件返回到「文本框」?
下面是使用的自定義驗證程序。
<asp:CustomValidator ID="ExistingIdValidator" runat="server" ControlToValidate="NewUserName"
ValidateEmptyText="true" ValidationGroup="NewUserForm"
OnServerValidate="NewUserNameCheck_ServerValidate">
</asp:CustomValidator>
protected void NewUserNameCheck_ServerValidate(object source, ServerValidateEventArgs args)
{
CustomValidator validator = source as CustomValidator;
if (validator != null)
{
string NewuserNameValue = this.NewUserName.Text;
Guid registeredUserId = (Guid)Membership.GetUser(NewuserNameValue).ProviderUserKey;
if (registeredUserId != null)
{
validator.IsValid = false;
this.FailureText_New.Text = "This UserID already exists. Please login as existing user";
args.IsValid = false;
}
}
}
代碼不顯示在這裏..仍在嘗試 – Anirudh 2012-01-27 21:39:48
@ jadarnel27:我看不到你是否修改了我的代碼。如果它是我原始文章中的自定義驗證器代碼,它仍然不適用於我。 – Anirudh 2012-01-27 22:25:15
您能否顯示JavaScript函數NewUserNameCheck_ServerValidate? – 2012-01-28 00:07:25