[英]Server-side validation in ASP.NET 2.0
我的應用程序在帶有C#的ASP.NET 2.0中。 我有一個帶有正則表達式^[0-9]*(\\\\,)?[0-9]?[0-9]?$
的正則表達式驗證器,現在我的客戶端不希望在客戶端進行此驗證,但是在按鈕上單擊即服務器端。
例如:我必須檢查txtPrice
文本框的值
請讓我知道如何將該正則表達式驗證放在服務器端。
提前致謝。
您可以使用CustomValidator來鏈接到服務器端事件:
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" OnServerValidate="CustomValidator1_Validate"></asp:CustomValidator>
然后在服務器端您可以驗證輸入
protected void CustomValidator1_Validate (object source, ServerValidateEventArgs argss)
{}
請記住將您的提交按鈕包裝為
if(IsValid) {}
確保尊重所有驗證者
嘗試將EnableClientScript="false"
添加到驗證器。
該控件將始終在服務器端進行驗證,無論您是否還啟用了客戶端驗證。 但是您必須記住在接受回Page.IsValid
之前檢查Page.IsValid
的值...
如前所述,您可以使用屬性關閉客戶端驗證。
使用基於ValidatorBase的服務器端控件的客戶端驗證僅在PostBack
即在任何服務器端按鈕/鏈接按鈕單擊上進行。
因此,您可以使用RegularExpressionValidator :
<asp:TextBox runat="server" ID="txtPrice" />
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtPrice" ValidationExpression="^[0-9]*(\\,)?[0-9]?[0-9]?$" ErrorMessage="Input is incorrect" />
您也可以使用CustomValidator :
<asp:TextBox runat="server" ID="txtPrice" />
<asp:CustomValidator runat="server" ControlToValidate="txtPrice" ErrorMessage="Input is incorrect" OnServerValidate="CustomValidator1_ServerValidate" />
protected void CustomValidator1_ServerValidate(object sender, ServerValidateEventArgs e)
{
// use e.Value to validate and set e.IsValid
// it's different depending on control to validate.
// for custom controls you can set it using ValidationPropertyAttribute
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.