Страница ASP.NET в IE крадет фокус, когда в другой программе - PullRequest
4 голосов
/ 14 января 2010

У меня отличная проблема!

Я создал страницу ASP.NET с панелью обновлений и триггером на этой панели обновлений. Триггер обновляет панель каждые 30 секунд.

Проблема в том, что когда триггер обновляет панель, IE8 получает фокус от любой другой программы, которую я использую. У кого-нибудь есть решение для этого?

Это происходит в IE8; в Firefox у меня нет проблем с этим.

Это таймер с панелью обновления:

<asp:Timer ID="Timer1" runat="server" Interval="30000" ontick="Timer1_Tick">
</asp:Timer>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    <asp:AsyncPostBackTrigger ControlID="ButtonSubmit" EventName="Click" />
    </Triggers>    
    <ContentTemplate>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
            <ProgressTemplate>
                Loading....
            </ProgressTemplate>
        </asp:UpdateProgress>
        <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder><br />
        <div class="clear"></div>
        <asp:Label ID="Label4" runat="server" Text="Grid not refreshed yet.">                    
        </asp:Label><br />
        <asp:Label ID="Label5" runat="server" Text="(Grid Will Referesh after Every 30 Sec)" Font-Bold="true"></asp:Label> 
    </ContentTemplate>   
</asp:UpdatePanel> 

На отметке таймера я выполняю только это действие:

protected void Timer1_Tick(object sender, EventArgs e)
{
    Label4.Text = "Grid Refreshed at: " + DateTime.Now.ToLongTimeString();
}

Заранее спасибо.

Надеюсь, кто-нибудь знает, почему IE8 "крадет" фокус.

1 Ответ

0 голосов
/ 14 января 2010

Попробуйте событие Live, это должно решить вашу проблему. http://docs.jquery.com/Events/live

...