如果你的要求是,你想用做此驗證內置ASP.Net驗證控件,那麼你將需要使用ASP.Net CustomValidator控件。這不能使用ASP.Net RequiredFieldValidator控件完成。要做到你所指定的驗證,把一個CustomValidator控件在您的網頁上,這樣的標記看起來像這樣:
<asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustValidator" runat="server" ControlToValidate="nameB"
ValidateEmptyText="true" ErrorMessage="Please tell us your name."
onservervalidate="CustValidator_ServerValidate" Display="none" >**</asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" CausesValidation="true" />
然後,您需要編寫自定義驗證。服務器端驗證代碼如下所示:
protected void CustValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrWhiteSpace(args.Value))
{
Label1.Text = CustValidator.ErrorMessage;
args.IsValid = false;
}
else
{
Label1.Text = "Whats your name";
args.IsValid = true;
}
}
此自定義驗證程序會爲您提供所需的行爲。
通常,當您使用CustomValidator控件時,您應該同時進行服務器端驗證(用於安全性)和客戶端驗證(以獲得更好的UI體驗)。要獲得客戶端驗證,您需要在javascript和/或jQuery中編寫客戶端函數以執行類似驗證,然後將其分配給自定義驗證器的ClientValidationFunction。
有關CustomValidator控件的更多信息,請參見MSDN documentation。
我喜歡這個想法,但我不確定它可以使用常規的ASP.NET驗證控件完成。如果您使用其他驗證框架(例如jQuery Validate或其他一些jQuery驗證插件)開放解決方案,我可以寫出一個關於如何在您的示例中執行此操作的答案。 –
嗨@TomasLycken我是編程新手,所以任何建議和指導將是偉大的學習up.Please顯示你的建議謝謝。 – Raghav
在閱讀其他人的答案之後,我意識到我腦子裏的東西並不適合WebForms範例 - 我想我一直在做ASP.NET MVC太久了:P但是有兩個很好的建議可以幫助你嘗試! –