[英]ASP.NET custom validator is not working
我已經完成了該頁面告訴我的所有操作,但是卻無法正常工作,我已經看到有人發布有關此問題的信息,並被告知要添加必需的字段驗證器,但我仍然這樣做,但仍然無法正常工作。
這是客戶端部分
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True" <!--tried without this line-->
ValidationGroup="form"> <!--tried without this line-->
</asp:CustomValidator>
這是C#服務器端代碼
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args){
args.IsValid = false;
}
看起來很簡單,對吧? 它應該一直出現,對吧? 好吧,它只出現在開始處,然后永遠消失,這是因為我在page_load()方法中有此行,但在button_click()方法中也有此行。
Page.Validate();
首先,刪除驗證組,然后添加Text
:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ControlToValidate="TextBoxUsername"
ErrorMessage="Username already exists"
Text="Username already exists"
OnServerValidate="CustomValidator1_ServerValidate"
ValidateEmptyText="True">
</asp:CustomValidator>
ErrorMessage
將顯示在ValidationSummary
控件中, Text
應顯示驗證器的位置。
更新按鈕以進行驗證(無論如何我相信true是默認值,但要明確一點):
然后單擊后檢查頁面是否有效,不需要調用Page.Validate
,因為對於CauseValidation
,它將自動進行。
protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
// Do Cool Stuff
}
}
另外,在檢查click方法時在其上放置一個斷點,因為您沒有任何客戶端連線(例如,驗證程序上的ClientValidationFunction="somejsfunction"
),因此您只有在進入服務器端驗證時才能點擊此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.