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 の標準的な動作ですか? どうすればそれを取り除くことができますか?