2011-02-08 2 views
0

У меня есть некоторая трудоемкая функция serveride, поэтому я пытаюсь выполнить каждую функцию шаг за шагом и информировать пользователя о ходе.UpdateProgress не отображается на частичной обратной передаче

Так что мой подход был:

  • создать видимую кнопку, которая выполняет асинхронный постбэк и обрабатывать событие щелчка на ServerSide
  • выполнить первую функцию
  • обновление этикетки с информировать пользователя, если функция была успешно выполнена
  • зарегистрировать javascript, который запускает событие click для второй невидимой кнопки (Style="display: none"), которая также регистрируется как асинхронный триггер для UpdatePanel
  • отправить страницу обратно клиенту и выполнить скрипт, нажмите кнопку Невидимого
  • ручке кнопка кнопка информирует пользователь, зарегистрировать JS для третьей кнопки невидимой, выполнить кнопку кнопки мыши и так далее ...

Но проблема в том, что UpdateProgress-control не будет показан, хотя я правильно установил AssociatedUpdatePanelID. Все функции запускаются правильно, и метки обновляются, только UpdateProgress остается невидимым.

Посмотрите пожалуйста:

<asp:UpdateProgress ID="UpdateProgress1" DynamicLayout="true" runat="server" AssociatedUpdatePanelID="UpdFormPanel" DisplayAfter="0"> 
    <ProgressTemplate> 
     <div class="progress"> 
      <asp:Image ID="ImgProgress" runat="server" ImageUrl="~/images/ajax-loader-arrows.gif" 
       ToolTip="loading..." />&nbsp;please wait... 
     </div> 
    </ProgressTemplate> 
</asp:UpdateProgress> 
<asp:UpdatePanel ID="UpdFormPanel" runat="server" UpdateMode="conditional" ChildrenAsTriggers="false"> 
    <ContentTemplate> 
     .... 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnShowUploadResult" EventName="Click" /> 
     <asp:AsyncPostBackTrigger ControlID="btnExtractFile" EventName="Click" /> 
     <asp:AsyncPostBackTrigger ControlID="btnShowResultView" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:Button ID="btnShowUploadResult" runat="server" CausesValidation="false" Text="hidden" Style="display: none" /> 
<asp:Button ID="btnExtractFile" runat="server" CausesValidation="false" Text="hidden" Style="display: none" /> 
<asp:Button ID="btnShowResultView" runat="server" CausesValidation="false" Text="hidden" Style="display: none" /> 

На этом пути я регистрирующего JavaScript в кнопку щелкните событие обработчика:

AjaxControlToolkit.ToolkitScriptManager.RegisterStartupScript(Me.UpdFormPanel, GetType(String), "ShowResultView", "$get('" & Me.btnShowResultView.ClientID & "').click();", True) 

Спасибо заранее.

ответ

1

Вы устанавливаете разрешенные или видимые свойства кода в любом месте? Это может привести к тому, что страница не будет отображать элемент управления. Вы подтвердили, что html есть? Вы уверены, что правильно изменяете стиль, когда вам нужно? Используйте firebug и установите точки останова. Пройдите через js.