【问题标题】:set focus to first control on ajax tabpanel in asp.net page using javascript使用javascript将焦点设置为asp.net页面中ajax tabpanel的第一个控件
【发布时间】:2013-01-02 06:15:46
【问题描述】:

我的 asp 页面上的 tabcontainer 中有很多标签。我想将焦点集中在每个选项卡选择的选项卡的第一个控件上。我发现tabpanel有一些客户端事件,比如onclientclick。但是客户端事件会在页面加载时触发。我想用javascript来做。我的页面布局如下。

<asp:Content ID="Content2" ContentPlaceHolderID="PageContent" Runat="Server"> 
<asp:UpdatePanel ID="updtPanel" UpdateMode="Always" runat="server"> 
<ContentTemplate> <asp:TabContainer ID="tabContainerMaster" runat="server" ActiveTabIndex="3" UseVerticalStripPlacement="True"> 
<asp:TabPanel runat="server" HeaderText="header1" ID="tab1">
..........

有没有办法在javascript中做到这一点?

【问题讨论】:

    标签: javascript asp.net tabs


    【解决方案1】:

    我的事情事件“OnClientActiveTabChanged”可能会解决您的问题

    <asp:TabContainer ID="tabContainerMaster" OnClientActiveTabChanged = "clientActiveTabChanged" ...
    

    而且JS函数也可以是这样的,你要在Javascript中,对吧?

    function clientActiveTabChanged(sender, args)
    {
       sender.get_tabs()[sender.get_activeTabIndex()].get_element().children[0].focus();
    }
    

    【讨论】:

    • 感谢您的回复。我试过你的代码。我得到了 tabpanel 对象。但是 children[0] 并没有获得第一个控制权。我想要选项卡中第一个启用的控件。
    • hmm,我想我错过了get_elemen()方法,我已经更新了我的答案,你现在可以试试
    • 谢谢@Pawan Nogariya。它运作良好。我得到了包含我所有控件的 div 容器。现在你可以告诉我如何从特定的 div 元素中获取第一个输入类型,如文本、下拉列表、复选框、单选按钮控件等。
    • 不客气!您可以像这样找到它 sender.get_tabs()[sender.get_activeTabIndex()].get_element().getElementsByTagName("select") 或 sender.get_tabs([sender.get_activeTabIndex()].get_element().getElementsByTagName("input "),对于特定类型的输入,如单选、复选框等。您可以循环到返回的元素数组,并可以检查那里的“类型”属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多