У меня есть простой AlwaysVisibleControlExtender, который расширяет небольшую панель, содержащую сообщение «Загрузка ...» и анимированный GIF. Все это находится внутри элемента управления UpdateProgress, поэтому он отображается только во время обработки моего приложения. Я установил его для отображения в верхнем центре. Он работает нормально, но я заметил, что он отображается немного справа от того, где он должен быть. Если я немного изменим размер окна, панель зафиксируется в правильном положении.
Я предполагаю, что он вычисляет, где находится центр, перед тем, как элемент управления UpdateProgress позволяет отображать Panel, таким образом, Panel имеет нулевую ширину. Только после того, как панель отображается, она правильно вычисляет центр. Есть ли обходной путь для этого?
Обновление: Вот разметка:
<%@ Page Language="VB" MasterPageFile="~/Compass.master" AutoEventWireup="false" CodeFile="SubmissionPrep.aspx.vb" Inherits="SubmissionPrep" Title="Untitled Page" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:UpdatePanel ID="UpdatePanel" runat="server" UpdateMode="Always">
<ContentTemplate>
<%-- Data and Controls here --%>
<asp:UpdateProgress ID="ProcessingUpdateProgress" runat="server">
<ProgressTemplate>
<asp:Panel ID="ProcessingPanel" runat="server" CssClass="loading">
Processing...
<img src="images/ajax-loader.gif" alt="" />
</asp:Panel>
<ajax:AlwaysVisibleControlExtender ID="ProcessingAlwaysVisibleControlExtender" runat="server"
TargetControlID="ProcessingPanel" VerticalSide="Top" HorizontalSide="Center">
</ajax:AlwaysVisibleControlExtender>
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>