繁体   English   中英

ASP.NET,多个Val Summary无法正常工作; 要求的现场值不触发

[英]ASP.NET, Multiple Val Summary not working; required field val not firing

我在aspx页面上有一个具有可编辑行的中继器。 该行具有一个文本框和与之关联的必填字段验证器。 在“保存”按钮上,单击该行,将触发必填字段验证器,该验证器绑定到页面顶部的validationsummary。

现在,我在中继器下面有一个带有文本框和保存按钮的面板。 单击该面板顶部的链接按钮,使用jquery show方法“打开”该面板。 必需的字段验证器未为此texbox触发。 我对此文本框有不同的验证摘要; 因为我只需要单击其保存按钮就可以触发验证。

所以我有这样的代码,

<asp:ValidationSummary ID="validationSummary" ValidationGroup="ValidationGroup1" EnableClientScript="true" runat="server" />

 <asp:ValidationSummary ID="validationSummary1" ValidationGroup="ValidationGroup2" EnableClientScript="true" runat="server" />

<asp:Repeater ID="Teams" runat="server" OnItemCommand="ItemCommand" OnItemDataBound="ItemDataBound">
    <HeaderTemplate>
        <table >
            <tr>
                <th>
                    <asp:Label ID="lbTeamNameHeader" runat="server" Text="TeamNameHeader"></asp:Label></th>

<th></th> </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td>
                 <asp:TextBox ID="txtTeamName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "txtTeamName")%>' />
                <asp:RequiredFieldValidator ID="reqdFieldValTeamName" ErrorMessage="Field cannot be blank" ValidationGroup="ValidationGroup1" runat="server" Display="None" ControlToValidate="txtTeamName"></asp:RequiredFieldValidator>
                <asp:RegularExpressionValidator ID="regularExprTeamName" ErrorMessage="Invalid input for the team name" ValidationGroup="ValidationGroup1" Display="None" ControlToValidate="txtTeamName" runat="server" ValidationExpression="^[a-zA-Z0-9]+$"></asp:RegularExpressionValidator>
            </td>

            <td>
                 <asp:Panel ID="panelSave" runat="server" Visible="false">
                    <asp:LinkButton ID="linkbuttonSave" runat="server" CommandName="Save" ValidationGroup="ValidationGroup1" Text="SAVE" />
                    <asp:LinkButton ID="linkbuttonCancel" runat="server" CommandName="Cancel" Text="CANCEL" />
                </asp:Panel>
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate></table></FooterTemplate>
</asp:Repeater>
<asp:LinkButton ID="linkbuttonAddTeam" runat="server" Text="Add New Team" />
<div id="AddPanelDiv" style="display:none;">
    <asp:TextBox ID="txtAddTeam" runat="server" />
    <asp:RequiredFieldValidator ID="reqdFieldValAddTeam" ErrorMessage="Field cannot be blank" ValidationGroup="ValidationGroup2" runat="server" Display="None" ControlToValidate="txtAddTeam"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="regularExprValAddTeam" ErrorMessage="Invalid format" ValidationGroup="ValidationGroup2" Display="None" ControlToValidate="txtAddTeam" runat="server" ValidationExpression="^[a-zA-Z0-9]+$"></asp:RegularExpressionValidator>
    <asp:LinkButton ID="linkbuttonCancel" runat="server" Text="CANCEL"></asp:LinkButton>
    <asp:LinkButton ID="linkbuttonSaveNewTeam" runat="server" OnClick="linkbuttonSaveNewTeam_OnClick" Text="SAVE" CausesValidation="true" />
    </div>

为什么到底板上的验证器会开火? 单击该保存按钮后,它将直接转到页面方法onclick。

如果删除验证组并单击转发器中的保存,则会触发! 但这不是我想要的。

您看起来像第二个按钮上缺少ValidationGroup="ValidationGroup2"

<asp:LinkButton ID="linkbuttonSaveNewTeam" runat="server" OnClick="linkbuttonSaveNewTeam_OnClick"
     Text="SAVE" CausesValidation="true" ValidationGroup="ValidationGroup2" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM