通过Ajax显示loader gif的问题

时间:2016-09-09 09:51:20

标签: asp.net .net ajax

我有一个以下部分,用于显示与更新面板相关联的加载程序gif

  <asp:ScriptManager runat="server"></asp:ScriptManager>
 <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="updPnlPromotion">
    <ProgressTemplate>
                <img alt="" src="Image/Ajaxloader.gif" />
    </ProgressTemplate>
 </asp:UpdateProgress>

这是更新面板,其中包含下拉列表,这是一个绑定在单选按钮上的数据绑定控件检查更改的事件,而不是部分回发和加载器gif的显示,整个页面回发。

 <asp:UpdatePanel ID="updPnlPromotion"  runat="server" UpdateMode="Always">
              <ContentTemplate>
                <td align="left" style="width: 20%;background-color:#CDCD9C">
                    <asp:radiobutton ID="rdbPromotion" runat="server" Text="New Promotion" AutoPostBack="true" GroupName="TacPlan" OnCheckedChanged="rdbPromotion_OnCheckedChanged"  style="font-weight:bold" />
                </td>
                <td align="left" style="width:30%; vertical-align:middle; background-color:#EBEBEB; text-align:center">
                    <asp:DropDownList runat="server" ID="ddlPromotion" Width="95%"></asp:DropDownList>
                </td>
                <td>
                    <asp:Label Text="*" ForeColor="Red" Visible="false" runat="server" ID="lblPromoPlanMandatory"></asp:Label>
                </td>
               </ContentTemplate>
               <Triggers>
                <asp:AsyncPostBackTrigger ControlID="rdbPromotion" EventName="CheckedChanged" />
               </Triggers>
          </asp:UpdatePanel>

2 个答案:

答案 0 :(得分:1)

我不相信您发布的代码存在问题。我创建了一个新的ASPX页面并将代码复制到其中。它按预期工作(我添加了一个监视加载事件的计数器):

animation of page behavior

这里是我用来测试它的代码:

Public Sub rdbPromotion_OnCheckedChanged(sender As Object, e As EventArgs) Handles rdbPromotion.CheckedChanged
    System.Threading.Thread.Sleep(2000)
End Sub

Private Sub Default5_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.counter.Text = Integer.Parse(Me.counter.Text) + 1
End Sub

看起来像是一个远景,但也许您正在测试的浏览器不支持部分渲染,或者ASP.NET没有认为它会这样做?:

http://ajax.asp.net/ajax/documentation/live/mref/P_System_Web_UI_ScriptManager_EnablePartialRendering.aspx

答案 1 :(得分:1)

我找到了问题的解决方案,在查看了web.config文件后,我发现了奇怪的设置xhtmlConformance mode =&#34; Legacy&#34;那里基本上停止了页面以某种方式ajaxify,通过删除它,它按预期工作。