2014-02-14 21 views
0

我在我的頁面上有兩個asp:LinkButton和一個asp:TextBox +一個asp:RegularExpressionValidator如何使用兩個按鈕的asp.net驗證程序,但一個文本框

<asp:LinkButton runat="server" ID="lbNearEventSearch" Text="<%# NearEventText %>" OnClick="NearEventSearch_Click" /> 

<asp:TextBox runat="server" ID="tbEventSearch" onfocus="clearIt(this)" onblur="setIt(this)" CssClass="addontextfield" MaxLength="5" /> 
<asp:LinkButton runat="server" ID="lbEventSearch" CssClass="addonbutton" OnClick="EventSearch_Click" /> 
<asp:RegularExpressionValidator runat="server" ID="EventSearchValidator" ControlToValidate="tbEventSearch" Enabled="false" ErrorMessage="<%# ErrorMessageText %>" ValidationExpression="[0-9]{4}" Display="Dynamic" /> 

我想限制驗證只有當用戶點擊「lbEventSearch」按鈕運行,點擊另一個按鈕時,什麼也不做。

在頁面加載有沒有辦法知道女巫按鈕被點擊,對不對?在驗證器之後,onclick回調會觸發。

我能想到的是禁用驗證器並在onclick回調中啓用它。 但我想知道是否會有更好的方法。

感謝

回答

2

只需在lbNearEventSearch上設置CausesValidation="false"即可。

2

您可以使用針對的ValidationGroup此:

<asp:TextBox runat="server" ID="tbEventSearch" onfocus="clearIt(this)" onblur="setIt(this)" CssClass="addontextfield" MaxLength="5" /> 
<asp:LinkButton runat="server" ID="lbEventSearch" CssClass="addonbutton" OnClick="EventSearch_Click" 
       ValidationGroup="SearchVG" /> 
<asp:RegularExpressionValidator runat="server" ID="EventSearchValidator" ControlToValidate="tbEventSearch" Enabled="false" ErrorMessage="<%# ErrorMessageText %>" ValidationExpression="[0-9]{4}" Display="Dynamic" 
           ValidationGroup="SearchVG" /> 

現在只能用指定的組(在這種情況下lbEventSearch)控制將觸發相應的驗證確認。

0

只需將相同的validationGroup賦予所有元素和lbEventSearch按鈕,並且不要將validationGroup設置爲其他按鈕。您可以從屬性面板設置驗證組

相關問題