当我单击updatepanel内的Imagebutton时,我正在尝试显示进度图像。在按钮上单击c#代码应该运行以及显示更新进度图像。使用此代码,它运行c#代码,但不显示进度图像,如果我删除postbacktrigger,然后它显示进度图像但c#不运行。我知道如何解决它?
<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 :(得分:2)
我的错误是AsyncPostBack触发它的工作原理。我忘了将GridView放在updatepanel标签内,因此c#代码实际上正在运行,但gridview没有更新,因为它不在updatepanel标签内。
答案 1 :(得分:0)
AsyncPostBackTrigger不起作用的原因是因为它是为UI级别的执行而设计的。 http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger.aspx
注意在示例中,表单输入字段的名称直接输入到SqlDataSource的select命令。
通过更新面板执行进度条是一场噩梦;想象一下UpdatePanel是一个刷新的小iframe,它不是那么做作,而是功能和UI的术语,它可能也是如此。
最好调查处理进度条的JavaScript方法。但是,这里有一些解决方案:http://www.dotnetcurry.com/ShowArticle.aspx?ID=227