我有一个以下部分,用于显示与更新面板相关联的加载程序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>
答案 0 :(得分:1)
我不相信您发布的代码存在问题。我创建了一个新的ASPX页面并将代码复制到其中。它按预期工作(我添加了一个监视加载事件的计数器):
这里是我用来测试它的代码:
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没有认为它会这样做?:
答案 1 :(得分:1)
我找到了问题的解决方案,在查看了web.config文件后,我发现了奇怪的设置xhtmlConformance mode =&#34; Legacy&#34;那里基本上停止了页面以某种方式ajaxify,通过删除它,它按预期工作。