我有一个页面需要一段时间来加载部分回发之间,并放置了一个UpdatePanelAnimationExtender来淡入更新面板。样品:
.aspx的
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" >
<ContentTemplate>
<asp:Button ID="testbtn" runat="server" Text="test" />
</ContentTemplate>
</asp:UpdatePanel>
<ajaxToolkit:UpdatePanelAnimationExtender ID="UpdatePanelAnimations" runat="server" TargetControlID="UpdatePanel1">
<Animations>
<OnUpdating>
<FadeOut Duration="0.2" Fps="20" minimumOpacity=".3" />
</OnUpdating>
<OnUpdated>
<FadeIn Duration="0.2" Fps="20" minimumOpacity=".3"/>
</OnUpdated>
</Animations>
</ajaxToolkit:UpdatePanelAnimationExtender>
背后的代码
Private Sub testpage_Init(sender As Object, e As System.EventArgs) Handles Me.Init
UpdatePanel1.ContentTemplateContainer.Controls.Add(New LiteralControl("1")) 'Show the init ran
End Sub
Private Sub btn_Click(sender As Object, e As System.EventArgs) Handles testbtn.Click
ScriptManager.GetCurrent(Me.Page).AddHistoryPoint("2", "2", "2") 'Save Event
UpdatePanel1.ContentTemplateContainer.Controls.Add(New LiteralControl("2")) 'Display event
End Sub
Private Sub sm1_Navigate(sender As Object, e As System.Web.UI.HistoryEventArgs) Handles sm1.Navigate
Dim State As String = ""
If e.State.HasKeys Then
State = e.State.Item(0)
End If
UpdatePanel1.ContentTemplateContainer.Controls.Add(New LiteralControl(State)) '"Reload" event
End Sub
当页面首次加载时,你得到 按钮1
单击按钮时,将保存状态并显示 按钮12
它可以正确淡入淡出。如果您使用包含历史记录信息的URL并尝试在新选项卡中加载它,则按钮12会正确显示,但它仍然会淡出。我曾听过有人说OnUpdated只会在第一次加载页面时发生部分后退。我猜它在按历史记录加载时不会伪装partialpostback,因此它永远不会消失。
我的问题是有一个干净的方法来解决这个问题,我刚刚能够找到,或者我是否因为注入一些javascript来手动调用thr淡入淡出?就像这个问题一样简单似乎是我在那里找不到任何帮助。
由于
答案 0 :(得分:1)
我终于明白了。我向OnUpdating
方添加了一个条件,以检查初始化部分帖子的控件是否是脚本管理器。如果是这样,请不要淡出。
<ajaxToolkit:UpdatePanelAnimationExtender ID="UpdatePanelAnimations" BehaviorID="animationpanel" runat="server" TargetControlID="UpdatePanel1">
<Animations>
<OnUpdating>
<Condition ConditionScript="(theForm.__EVENTTARGET.value != 'ctl00$sm1');">
<FadeOut Duration="0.15" Fps="20" minimumOpacity=".3" />
</Condition>
</OnUpdating>
<OnUpdated>
<FadeIn Duration="0.15" Fps="20" minimumOpacity=".3" />
</OnUpdated>
</Animations>
</ajaxToolkit:UpdatePanelAnimationExtender>