Asp.net 更新面板动画未显示

Asp.net 更新面板动画未显示,asp.net,ajax,updatepanel,Asp.net,Ajax,Updatepanel,当我在一个流行的博客中遵循一个简单的食谱时,我似乎无法得到一个带有动画GIF的更新面板 我们使用的是ASP.NET3.5和VB代码隐藏页面,其中加入了一些AJAX,但并不复杂。用户将看到一个选择页面,其中包含允许他们编辑的全部数据。页面顶部有一些复选框和下拉列表,用作下面gridview的过滤器。单击给定行上的相应链接将重定向到该项目的详细信息页面 当触发复选框时,会导致再次访问数据库,以获取datagrid绑定到的对象列表,指示要从数据库读取的对象类别。下拉列表用于“过滤”显示。这些过滤器运行

当我在一个流行的博客中遵循一个简单的食谱时,我似乎无法得到一个带有动画GIF的更新面板

我们使用的是ASP.NET3.5和VB代码隐藏页面,其中加入了一些AJAX,但并不复杂。用户将看到一个选择页面,其中包含允许他们编辑的全部数据。页面顶部有一些复选框和下拉列表,用作下面gridview的过滤器。单击给定行上的相应链接将重定向到该项目的详细信息页面

当触发复选框时,会导致再次访问数据库,以获取datagrid绑定到的对象列表,指示要从数据库读取的对象类别。下拉列表用于“过滤”显示。这些过滤器运行得很快——没有问题。但是,对数据库的某些访问会调用大量历史数据,页面需要一段时间才能重新显示。我们希望屏幕上有东西告诉用户软件正在运行

我们决定尝试使用的方法

不幸的是,我一定是做错了什么,因为我没有得到弹出动画面板

第一个区别是,所讨论的页面有一个母版页——我不知道这是否重要。但以下是asp:Content和asp:ScriptManager标记后的aspx片段:

首先,我有onUpdate和onUpdate函数,如引用页面上的示例所示,仅根据GridView的名称进行修改

然后是“wrapping”div的开始,它以一个表开始,其中包含复选框和下拉列表

如何定义它们的示例如下:

    <asp:TableCell ID="TableCell4" runat="server"><asp:CheckBox ID="chkShowCancelled" runat="server" Text="Cancelled" AutoPostBack="True" /></asp:TableCell>
    <asp:TableCell>TO#:<asp:DropDownList ID="ddlTO" runat="server" AutoPostBack="True"></asp:DropDownList></asp:TableCell>
之后是包含gridview的UpdatePanel:

<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:GridView ID="grdRequests" runat="server" Style="z-index: 100; left: 0px; top: 0px" 
            AutoGenerateColumns="False" CellPadding="4" Font-Size="Small" ForeColor="#333333" 
            GridLines="None" PageSize="25" AutoGenerateSelectButton="False" AllowSorting="True" Width="100%" EnableViewState="False">
            <HeaderStyle CssClass="tableheader" />
            <FooterStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                 ...Template Fields Deleted for Brevity...
            </Columns>
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#034EA1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    </ContentTemplate> </asp:UpdatePanel>
紧接着就是AnimationXtender和弹出面板

<cc1:UpdatePanelAnimationExtender runat="server" TargetControlID="updatePanel">
    <Animations>
        <OnUpdating>
            <Parallel duration="0">
                <ScriptAction Script="onUpdating();" />
            </Parallel>
        </OnUpdating>
        <OnUpdated>
            <Parallel duration="0">
                <ScriptAction Script="onUpdated();" />
            </Parallel>
        </OnUpdated>
    </Animations>
</cc1:UpdatePanelAnimationExtender>
<asp:Panel ID="pnlPopup" runat="server" CssClass="progress" style="display:none;">
    <div class="pcontainer">
        <div class="pheader">Loading, please wait...</div>
        <div class="pbody">
            <img alt="Progressing..." src="~/Images/activity.gif" />
        </div>
    </div>
</asp:Panel> 
然后就是桌子前面“wrapping”div的结束标记

在示例中,Matt只需在其page.Load中使用System.Threading.Thread.Sleep3000语句将页面置于休眠状态,然后选中IsPostback以使动画弹出并显示。我在页面上有很多内容。在VB中加载codebehind,但当我单击其中一个复选框以长时间访问数据库或从下拉列表中选择某个内容以过滤我已有的结果时,动画根本不会出现

如果重要的话,包含表、GridView、UpdatePanel、UpdatePanelAnimationExtender的包装div是在没有属性的情况下定义的。它实际上只是用来描述asp标记中的Javascript


我遗漏了什么?

好的,我已经将AJAX control toolkit 1.0与.net 2.0结合使用,我的更新面板工作得非常好

首先,您的javascript代码在哪里

编辑:以下是我的代码:

                                <ContentTemplate>
                                     <asp:UpdateProgress id="tab1Updating" runat="server" AssociatedUpdatePanelID="tab1Update">
                                                    <ProgressTemplate>
                                                        <div>
                                                            <img src="./IMG/loader.gif" alt="loading" /> 
                                                               Please Wait...
                                                        </div>
                                                    </ProgressTemplate>
                                     </asp:UpdateProgress>
                             </ContentTemplate>
                             </asp:UpdatePanel>

                         </ContentTemplate>

@David-Ajax功能在站点的其他地方正常工作吗?也就是说,更新面板是否在预期的位置执行异步回发?我们前一段时间尝试了一些UpdatePanel的东西,但不起作用-认为在尝试调用web服务时,web服务器可能有问题,因为没有时间正确诊断。但是像手风琴扩展器和Panelrounder这样的东西工作得很好。我们在加载网格时使用了一些动画,但是加载速度太快,我们看不到动画。这可能就是这里正在发生的事情,在这种情况下,你需要放慢速度才能看到它,尽管我不知道你在这里会怎么做。可能会增加持续时间?更新可能需要30秒。我想我缺少的是真正“激发”代码以弹出面板的东西。至少,如果它在快速更新时“闪现”并消失,我可以使用它,但我什么也看不到,这就是令人困惑的地方。页面上的内容顺序是:我已经修改了我的editm,以包含部分代码。上面的代码位于选项卡面板中,但可以在任何位置。希望你能理解。