问题控制在TabPanel中输入密钥行为

时间:2015-01-16 15:27:49

标签: asp.net tabs

我有一个使用Tabcontainer控件的Web应用程序。 我在TabPanel中定义了一个HeaderTemplate,并在其上放了一个ImageButton控件,以便我可以在选项卡上有一个“关闭面板”X图像。
我手动控制代码的标签可见性 从这个图像OnClick事件 - 我执行一些清理并手动关闭选项卡的代码。

以下是显示代码:

<asp:TabPanel ID="TabREVRES" runat="server" HeaderText="" Visible="false" DefaultButton="T2ResSearch">
<HeaderTemplate>
<asp:Label ID="ResHdrLbl1" runat="server" Text="Open Resource Review" Font-Size="Smaller"></asp:Label>
            <asp:ImageButton runat="server" ID="ResHdrClose" ImageUrl="../Images/XinBox.jpg" ToolTip="Close Review Tab" OnClick="ResTabClose_Click"
                Height="15" ImageAlign="TextTop" Width="15" />   
</HeaderTemplate>

我在此TabPanel中的页面上有一个文本框和搜索按钮。我希望Enter键默认为“搜索”按钮。但是,Enter键默认为TabPanel ImageButton控件的Onclick事件 - 从而执行代码隐藏逻辑以关闭选项卡。
正如您从代码示例中看到的那样 - 我尝试将DefaultButton =添加到TabPanel,但这不起作用。任何有关这方面的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

不确定这是最干净的方法 - 但我用以下代码解决了这个问题,以防它对任何人有所帮助:

在我没有按钮控件的标签中 - 我停止使用此javascript关闭标签的Enter键:

function stopRKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type == "text")) { return false; }
    }
    document.onkeypress = stopRKey;

对于带按钮控件的标签 - 我将其中一个设为默认值,如下所示:

this.Form.DefaultButton = this.mydefaultbuttonID.UniqueID;
相关问题