![](/img/trans.png)
[英]How to add RequiredFieldValidator control with ValidationExpression in code behind?
[英]How to add Regex to ValidationExpression in code behind of ASP.Net page?
我的頁面中有一個RegularExpressionValidator控件,代碼中有一個全局公共正則表達式變量,其后有正確的ValidationExpression和Option及TimeSpan。 貝婁是我的代碼背后的代碼:
public partial class Index : System.Web.UI.Page
{
public Regex regex;
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();
if (!IsPostBack)
{
regex = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", RegexOptions.Singleline, TimeSpan.FromSeconds(5));
}
}
}
我想將其添加到我的頁面控件中。 它確定它,但驗證總是顯示錯誤,並且即使我輸入正確的格式也不起作用。 我試圖打字。 第一個沒有錯誤,但有錯誤的反應。 第二個頁面錯誤導致頁面無法加載。
WebPage中的第一種類型代碼如下:
<asp:RegularExpressionValidator ID="REV" runat="server" Text="Incorrect Format" ForeColor="Red" ControlToValidate="txt1" ValidationExpression="<%# regex %>" Display="Dynamic" />
WebPage中的第二種類型代碼如下:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Text="Incorrect Format" ForeColor="Red" ControlToValidate="txt1" ValidationExpression="<%# regex.Match(txt1.Text) %>" Display="Dynamic" />
我怎么解決這個問題。 非常感謝大家:)
幸運的是,我錯過了一件事,經過大約18個小時的思考,我突然發現了問題的解決方案。
問題是我們沒有像win應用程序庫C#中那樣有常規的全局變量(例如winform&wpf&...),而且每次我調用regex時都為null。 但是如果我們要全局的話就必須有類變量,所以我做了一個靜態校准,給它一個靜態變量regex(因為我不想每次都被迫創建新的實例&...)並且代碼可以正常工作精細。 讓我與大家分享我的代碼。
以下是我必須走的真正方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Index : System.Web.UI.Page
{
public static class RGX
{
public static Regex regex = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", RegexOptions.Singleline, TimeSpan.FromSeconds(5));
}
protected void Page_Load(object sender, EventArgs e)
{
Page.DataBind();
}
}
我在頁面代碼中使用了控件,如下所示
<asp:RegularExpressionValidator ID="REV" runat="server" Text="Wrong Format" ControlToValidate="txt1" Display="Dynamic" ValidationExpression="<%# RGX.regex %>"></asp:RegularExpressionValidator>
我希望有人能幫助我,但沒人能幫助我,最后我花了大約18個小時的時間找到了解決方案。 那花了我很多錢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.