Я использую более одного TabContainer на странице в ASP. NET, и я заметил действительно странное поведение: когда страница загружается, фокус перемещается на последний TabContainer на странице, заставляя его прокручиваться вниз. Я явно не сосредотачиваюсь на каком-либо контроле, поэтому я не понимаю, откуда это берется. Я также менял местами элементы управления, и всегда фокусировался на последнем. Контейнеры вкладок не имеют каких-либо причудливых настроек, в основном они выглядят так:
<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? Как от него избавиться?