我在 ASP.NET 项目的一个页面上使用了多个 TabContainer,我注意到一个非常奇怪的行为:加载页面时,焦点跳转到页面上的最后一个 TabContainer,导致它向下滚动。我没有明确关注任何控制,所以我不明白这是从哪里来的。我还在控件之间切换了位置,它始终是最后一个焦点。TabContainers 没有任何花哨的设置,它们基本上是这样的:
<cc1:TabContainer ID="tabContainer" runat="server">
<cc1:TabPanel runat="server" HeaderText="Header1" ID="tabPanel1" TabIndex="0">
<HeaderTemplate>
<asp:Label ID="lblTab1" runat="server" Text="Tab1"></asp:Label>
</HeaderTemplate>
<ContentTemplate>
... (anything goes here, it still doesn't work)
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel runat="server" HeaderText="Header2" ID="tabPanel2" TabIndex="1">
<HeaderTemplate>
<asp:Label ID="lblTab2" EnableViewState="False" runat="server" Text="Tab2"></asp:Label>
</HeaderTemplate>
<ContentTemplate>
... (anything goes here, it still doesn't work)
</ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>
我知道我可以将焦点设置在控件上,我试过了,但页面首先滚动到选项卡容器,然后返回到焦点控件(看起来不太好)。我尝试将焦点设置到另一个控件:
<body id="main" onload="javascript:document.getElementById('lnkLogout').focus();">
这是 TabContainer 的标准行为吗?我怎样才能摆脱它?