簡體   English   中英

ASP.NET自定義驗證器不起作用

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

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