Panel.DefaultButton和登录按钮

时间:2013-06-14 19:50:58

标签: asp.net

我有两个表单,每个表单都有按钮,我用两个面板抽象它们所以当按下每个面板中的键时,会发出正确的按钮。 在一个面板中我有登录表单

 <asp:Panel ID="pnlRegistered" runat="server" DefaultButton="btnLoginButton">
    <LayoutTemplate>
       <asp:Button ID="btnLoginButton" runat="server" CommandName="Login" Text="Login" ValidationGroup="Login1" OnClick="btnLoginButton_Click"  ClientIDMode="Static" />
    </LayoutTemplate>
 <asp:Panel>

但我得到例外

System.InvalidOperationException

The DefaultButton of 'pnlRegistered' must be the ID of a control of type IButtonControl.

2 个答案:

答案 0 :(得分:2)

您缺少DefaultButton的值:

<asp:Panel ID="pnlRegistered" runat="server" DefaultButton="btnLoginButton">
  <asp:Button ID="btnLoginButton" runat="server" CommandName="Login" Text="Login" ValidationGroup="Login1" OnClick="btnLoginButton_Click"  ClientIDMode="Static" />
<asp:Panel>

编辑:你也可以在代码隐藏中设置DefaultButton,如下所示:

pnlRegistered.DefaultButton = btnLoginButton.UniqueID;

答案 1 :(得分:1)

将您的面板放在登录控件的layouttemplate

<asp:Login ID="Login1" runat="server">
    <LayoutTemplate>
        <asp:Panel ID="pnlRegistered" runat="server" DefaultButton="btnLoginButton">
            <asp:Button ID="btnLoginButton" runat="server" CommandName="Login" Text="Login" ValidationGroup="Login1"
                ClientIDMode="Static" />
        </asp:Panel>
    </LayoutTemplate>
</asp:Login>