默认按钮在asp.net面板中不起作用

时间:2012-08-12 15:42:11

标签: asp.net panel defaultbutton

我有一个带有默认按钮设置的asp.net面板,但是当按下ENTER按钮时按钮永远不会触发。我在SO搜索了这个问题,但找不到任何有效的回复。

当用户点击ENTER时如何让btnRegister点击?

<asp:Panel runat="server" ID="pnlCustomer" DefaultButton="btnRegister">
    <table width="500px" border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td align="right">
            <asp:Button ID="btnBackToProfile" Text="Back To Profile" runat="server" Enabled="false"
                onclick="btnBackToProfile_Click" />
        </td>
        <td align="right">
            <asp:Button ID="btnClearnForm" Text="Clear Form" runat="server" 
                OnClientClick="ClearForm1()" />
        </td>
        <td align="right">
            <asp:Button id="btnRegister" runat="server" onclientclick="document.getElementById('AlertTime').value = GetSeconds();" Text="Continue" OnClick="btnRegister_Click" />
        </td>
    </tr>
    </table>
</asp:Panel>

2 个答案:

答案 0 :(得分:5)

我想在此处指出的第一件事是默认按钮是当焦点位于此面板中存在的控件之一时按下的控件,而不是其余部分页面。

问题的主要原因是因为在这个面板中你没有任何东西(按钮除外)可以保持键盘的焦点并将输入发送到默认按钮。

像文本编辑器一样 ,例如:如果您在面板中放置文本编辑器,单击它然后按回车键,将触发默认按钮。

因此,当焦点位于此面板内部时,按下按钮,当您按下输入时,按下所选按钮,而不是默认按钮。

答案 1 :(得分:1)

我遇到了同样的问题,发现面板不能位于包含默认按钮的表格之外。如果您将面板放在具有按钮的单元格内,它应该可以工作。