使用服务器验证时如何查找已按下的图像按钮

时间:2013-08-29 09:41:10

标签: c# asp.net validation

我有一个看起来像这样的验证方法

protected void ValidateHello(Object sender, ServerValidateEventArgs args)
{
     //Validate Stuff
}

在我的ASP中,我有这一行来验证下拉列表。

<asp:CustomValidator ID="cvNames" runat="server" ControlToValidate="ddlNames" OnServerValidate="ValidateHello" Display="Dynamic" ErrorMessage="Please select a Name">*</asp:CustomValidator>

但是我有2个不同的图像按钮。对于此下拉框,应该对另一个进行不同的验证。我可以考虑这样做的唯一方法是使用if()语句并检查按下哪个图像按钮以进行验证。

这是我的ImageButton代码。

<asp:ImageButton runat="server" ID="imgSearchNames" CssClass="SearchButton" ImageUrl="~/Images/searchbutton.jpg" OnClick="imgSearchNames_OnClick" ></asp:ImageButton>

这是我的OnClick事件方法。

    protected void imgSearchNames_OnClick(Object sender, EventArgs e)
    {
        Page.Validate();

        if (Page.IsValid)
        {
            //Do Stuff
        }
    }   

需要很多帮助,并提前感谢。

1 个答案:

答案 0 :(得分:1)

为什么不使用validationGroup

ValidationGroup属性使您的输入仅针对特定事件进行验证(imagebutton_click让我们说),

<asp:ImageButton ID="imgBtn" ValidationGroup="xxxx" CausesValidation="true" />

<asp:CustomValidator ID="cvNames" runat="server"  ValidationGroup="xxxx" OnServerValidate="ValidateHello"  Display="Dynamic" ErrorMessage="Please select a Name">*</asp:CustomValidator>

ValidationGroup中使用相同的Imagebutton。 您还应该考虑使用ValidateEmptyText=true,这样即使是空控件也会激活验证。