我正在使用允许用户刷新页面的链接按钮。链接按钮存储在带有计时器的更新面板内。计时器的功能是检查是否有其他人定期更新数据库。如果检测到更新,则链接按钮将更改为可见,用户可以选择“查看更新”。
更新面板的来源:
<asp:UpdatePanel ID="UpdatePanelDraftUpdate" runat="server">
<ContentTemplate>
<asp:Timer ID="TimerCheckForDraftUpdates" runat="server" Interval="10000" OnTick="TimerCheckForDraftUpdates_Tick">
</asp:Timer>
<asp:HiddenField ID="HiddenFieldLatestDraftUpdate" runat="server" />
<asp:HiddenField ID="HiddenFieldRestricted" runat="server" />
<asp:Panel ID="PanelDraftUpdateNotif" runat="server" Visible="false">
<div class="bannerwarn">
<asp:Label ID="LabelDraftUpdate" runat="server" Text="This draft was edited by:"
CssClass="bannerwarnlabel"></asp:Label>
<asp:LinkButton ID="LinkButtonViewUpdates" runat="server" CssClass="bannerwarnlabel"
OnClick="LinkButtonViewUpdates_Click">See The Updates</asp:LinkButton>
<asp:ImageButton ID="ImageButtonCloseDraftNotif" runat="server" ImageUrl="~/Images/window_close.bmp"
CssClass="bannerwarnclose" OnClick="ImageButtonCloseDraftNotif_Click" />
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
当用户单击链接按钮时,可以根据状态将页面重定向为两种方式之一。 Memogram对象在页面加载时存储在会话状态中。链接按钮的来源单击:
protected void LinkButtonViewUpdates_Click(object sender, EventArgs e)
{
//it is possible the MG was moved out of the draft state. In this case, we must redirect to the view page.
Memogram mg = new Memogram();
try
{
mg = SessionWrapperUser.Current.curMemogram;
}
catch (Exception)
{
mg = Memogram.GetMemogramById(GetMemogramIdFromPageRequest());
}
if (mg.GetStateName().ToLower() == "draft")
{
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
else
{
Page.Response.Redirect("ViewMemogram.aspx?mid=" + mg.MemogramId.ToString(), true);
}
}
我遇到的问题是在开发(IE8)和运行IE8的生产客户端上一切正常。但是,使用IE6的生产客户端会在单击链接按钮时挂起。它不仅仅是IE6浏览器挂起,而且整个浏览器都没有响应,必须关闭并重新启动。