1

我有一个 aspx 页面,我在其中放置了两个更新面板,每个面板有两个提交按钮...但是在单击第二个按钮时,它没有触发第二个按钮事件,它正在接收第一个按钮验证消息。

这是我的aspx页面代码....

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="updDate1" runat="server" UpdateMode="Conditional" style="position: absolute;
    left: 0px; top: 0px; width: 339px; height: 243px;">
    <ContentTemplate>
        <table width="400">
            <tr>
                <td>
                </td>
                <td colspan="2">
                    <b>Sign Up for New User Account</b>
                </td>
            </tr>
            <tr>
                <td>
                    UserName:
                </td>
                <td>
                    <asp:TextBox ID="txtUserName" runat="server" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="rqfUserName" runat="server" ControlToValidate="txtUserName"
                        Display="Dynamic" ErrorMessage="Required" ForeColor="Red" />
                </td>
            </tr>
            <tr>
                <td>
                    Password:
                </td>
                <td>
                    <asp:TextBox ID="txtPwd" runat="server" TextMode="Password" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtPwd"
                        Display="Dynamic" ErrorMessage="Required" ForeColor="Red" />
                </td>
            </tr>
            <tr>
                <td>
                    Confirm Password:
                </td>
                <td>
                    <asp:TextBox ID="txtCnfPwd" runat="server" TextMode="Password" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="PasswordConfirmRequiredValidator" runat="server"
                        ControlToValidate="txtCnfPwd" ForeColor="red" Display="Dynamic" ErrorMessage="Required" />
                    <asp:CompareValidator ID="PasswordConfirmCompareValidator" runat="server" ControlToValidate="txtCnfPwd"
                        ForeColor="red" Display="Dynamic" ControlToCompare="txtPwd" ErrorMessage="Confirm password must match password." />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Create User" />
                </td>
                <tr>
                    <td class="style1" colspan="3">
                        <asp:Label ID="lblResult" runat="server" Font-Bold="true" />
                    </td>
                </tr>
            </tr>
        </table>
    </ContentTemplate>
</asp:UpdatePanel>
<div>
    <asp:UpdatePanel ID="updDate2" runat="server" UpdateMode="Conditional" RenderMode="Inline"
        style="position: absolute; left: 628px; top: 0px; width: 339px; height: 243px;">
        <ContentTemplate>
            <div class="GridviewDiv">
                <table>
                    <tr>
                        <td align="right">
                            &nbsp;
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:GridView ID="gvRoles" runat="server" CssClass="Gridview" AutoGenerateColumns="false">
                                <HeaderStyle BackColor="#df5015" />
                                <Columns>
                                    <asp:TemplateField>
                                        <ItemTemplate>
                                            <asp:CheckBox ID="chkRole" runat="server" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Role Name">
                                        <ItemTemplate>
                                            <asp:Label ID="lblRole" runat="server" Text="<%#Container.DataItem %>" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <asp:Button ID="btnAssign" runat="server" Text="Assign or UnAssign" OnClick="btnAssign_Click"
                                Style="height: 26px" />
                        </td>
                    </tr>
                </table>
                <div>
                    <asp:Label ID="lblSuccess" runat="server" Font-Bold="true" />
                    <br />
                    <asp:Label ID="lblError" runat="server" Font-Bold="true" />
                </div>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>

任何帮助将不胜感激..

提前致谢..

4

3 回答 3

2

设置CausesValidation="false"在第二个按钮

于 2013-09-18T06:14:16.717 回答
2

亲爱的,我通过制作虚拟项目尝试了你的代码,它清楚地告诉我这是一个问题 CausesValidation="false",我知道你也试过这个东西,但即使我不知道你的后端编码。所以我这边的同样建议只是改变你的btnAssign喜欢

<asp:Button ID="btnAssign" runat="server" Text="Assign or UnAssign" 
Style="height: 26px" onclick="btnAssign_Click" CausesValidation="false" />

注意: - 尝试在不同的浏览器中检查它。

也尝试一下ValidationGroup。将ValidationGroup属性应用到您的验证控件中,并将相同的属性分配给btnSubmit. 这将起作用。

希望它有效。

于 2013-09-18T06:53:04.590 回答
2

第二个按钮中的设置 CausesValidation="false"应该有效。

完成这项工作的另一种方法是将公共分配ValidationGroup给您的验证器以及您的第一个提交按钮[仅适用于 UpdatePanel updDate1]。

例如在您的验证器中:

<asp:RequiredFieldValidator ID="rqfUserName" runat="server"
     ControlToValidate="txtUserName"Display="Dynamic"
     ErrorMessage="Required" ForeColor="Red"
     ValidationGroup="updDate1UserCreation" />

以及带有 ID 的提交按钮:btnSubmit

<asp:Button ID="btnSubmit" runat="server"
     OnClick="btnSubmit_Click" Text="Create User"
     ValidationGroup="updDate1UserCreation" />

您的第一个 updatePanel 最终将如下所示:

<asp:UpdatePanel ID="updDate1" runat="server" UpdateMode="Conditional"
    style="position: absolute;
    left: 0px; top: 0px; width: 339px; height: 243px;">
    <ContentTemplate>
        <table width="400">
            <tr>
                <td>
                </td>
                <td colspan="2">
                    <b>Sign Up for New User Account</b>
                </td>
            </tr>
            <tr>
                <td>
                    UserName:
                </td>
                <td>
                    <asp:TextBox ID="txtUserName" runat="server" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="rqfUserName" runat="server"
                         ControlToValidate="txtUserName"
                         Display="Dynamic" ErrorMessage="Required" ForeColor="Red"
                         ValidationGroup="updDate1UserCreation" />
                </td>
            </tr>
            <tr>
                <td>
                    Password:
                </td>
                <td>
                    <asp:TextBox ID="txtPwd" runat="server" TextMode="Password" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                         runat="server" ControlToValidate="txtPwd"
                         Display="Dynamic" ErrorMessage="Required" ForeColor="Red"
                         ValidationGroup="updDate1UserCreation" />
                </td>
            </tr>
            <tr>
                <td>
                    Confirm Password:
                </td>
                <td>
                    <asp:TextBox ID="txtCnfPwd" runat="server" TextMode="Password" />
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="PasswordConfirmRequiredValidator"
                           runat="server"
                           ControlToValidate="txtCnfPwd" ForeColor="red" 
                           Display="Dynamic" ErrorMessage="Required"
                           ValidationGroup="updDate1UserCreation" />
                    <asp:CompareValidator ID="PasswordConfirmCompareValidator"
                         runat="server" ControlToValidate="txtCnfPwd"
                         ForeColor="red" Display="Dynamic" ControlToCompare="txtPwd"
                         ErrorMessage="Confirm password must match password."
                         ValidationGroup="updDate1UserCreation" />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="btnSubmit" runat="server"
                         OnClick="btnSubmit_Click" Text="Create User"
                         ValidationGroup="updDate1UserCreation" />
                </td>
                <tr>
                    <td class="style1" colspan="3">
                        <asp:Label ID="lblResult" runat="server" Font-Bold="true" />
                    </td>
                </tr>
            </tr>
        </table>
    </ContentTemplate>

</asp:UpdatePanel>
于 2013-09-18T06:57:10.583 回答