2013-09-30 3 views
0

Я пытаюсь показать изображение прогресса, когда я нажимаю кнопку Imagebutton внутри панели обновления. На кнопке нажмите кнопку C#, чтобы запустить, а также показать изображение прогресса обновления. С помощью этого кода он запускает код C#, но не показывает изображение прогресса, если я удаляю postbacktrigger, тогда он показывает изображение прогресса, но C# не запускается. Любая идея, как я могу это исправить?Imagebutton не запускается в UpdatePanel

<div id="scriptmanager"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true"> 

     <ContentTemplate> 
     <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/SurveyImages/clean.jpg" 
            onclick="cmd_clean_emergency_Click" 


           style="-webkit-appearance:push-button; border-radius:5px; border: 4px solid #E9A732" Enabled="False" 
            /> 
     </ContentTemplate> 
     <Triggers> 
     <asp:PostBackTrigger ControlID="ImageButton1"/> 
     </Triggers> 
     </asp:UpdatePanel> 
     <asp:UpdateProgress ID="UpdateProgress1" DisplayAfter="0" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> 
     <ProgressTemplate> 
      <img src="images/ProgressBar1.jpg" /> 

     </ProgressTemplate> 
     </asp:UpdateProgress> 
    </div> 
+0

Попробуйте использовать 'AyncPostBackTrigger'. – Malk

+0

С триггером AsyncPostBack изображение прогресса работает нормально, но затем C# не запускается. –

ответ

0

Причина: AsyncPostBackTrigger не работает, потому что он предназначен для выполнения на уровне UI. http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger.aspx

Обратите внимание, что в этом примере имя поля ввода формы вводится непосредственно в команду выбора SqlDataSource.

Выполнение индикатора выполнения через панель обновления - это кошмар; просто представьте UpdatePanel как небольшой iframe, который освежает, на самом деле это не надуманно, но условия функциональности и пользовательский интерфейс могут быть и такими.

Вам лучше изучить метод JavaScript для обработки индикатора выполнения. Однако здесь есть несколько решений: http://www.dotnetcurry.com/ShowArticle.aspx?ID=227

2

Это была моя ошибка при запуске AsyncPostBack. Я забыл поместить GridView внутри тега updatepanel, поэтому код C# был фактически запущен, но gridview не обновлялся, потому что он не был внутри тега updatepanel.

Смежные вопросы