2014-02-14 19 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设置为其他按钮。您可以从属性面板设置验证组

相关问题