如何在 UpdatePanel 中触发进度模板的显示

How to trigger display of ProgressTemplate in UpdatePanel?

本文关键字:显示 UpdatePanel      更新时间:2023-09-26

在 asp.net 网站上工作。在其中一个页面中,我正在使用一个UpdatePanel,里面有一个ProgressTemplate(它包含一个"更新.gif")。在同一页面上,我还有一个jQuery/bootstrap日期范围选择器。

当我选择日期范围时,我会使用 ___doPostBack 进行回发。一切正常,回发等,但问题是更新.gif永远不会出现。但是,我希望它(至少在"处理"时)。

问:我怎么能做到这一点,无论是用javascript,还是在Page_Load中,等等?谢谢!

"更新"面板定义为...。

       <asp:UpdateProgress runat="server" ID="UpdatePanel1_UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel1">
        <ProgressTemplate>
            <div class="ajaxUpdatePanel">
            </div>
            <div style="position: absolute; padding: 30px;" class="updatingContainer">
                <img src="../Images/updating.gif" alt="Updating" />
            </div>
        </ProgressTemplate>
    </asp:UpdateProgress>
    <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
        <ContentTemplate>
                 :
                 :

日期范围选取器定义为...。

 <asp:TextBox ID="daterange" name="daterange" 
    class="jQuery_DateRangePicker" runat="server" Width="110px"></asp:TextBox>

当选择一个日期时,我会这样做(除其他外)....

__doPostBack('daterange', '');

我也尝试将javascript代码包装在这里,但没有任何显示......

$get('<%= UpdatePanel1_UpdateProgress1.ClientID %>').style.display = 'block';
 // do all the processing
$get('<%= UpdatePanel1_UpdateProgress1.ClientID %>').style.display = 'none';

ajaxUpdatePanel 在那里是用来做什么的? 我的猜测是它与此有关,尽管不确定,因为它似乎并没有真正做任何事情。

理论上,在服务器端调用期间调用进度模板适用于指定的更新面板。

查看此链接以查看一些示例。

你能使用 AjaxToolkit 吗?如果是,则

<ajaxToolkit:ModalPopupExtender ID="modalPopup" runat="server" TargetControlID="UpdateProgress"
PopupControlID="UpdateProgress" BackgroundCssClass="modalPopup" />

请检查完整的示例:按代码更新面板和进度条示例