私は部分的なポストバック間にロードするのに時間がかかり、updatePanelAnimationExtenderを配置してupdatePanelをフェードインまたはフェードアウトさせるページを持っています。サンプル:Asp.net Ajax Single UpdatePanel + AnimationExtender + HIstory = OnUpdatedアニメーションなし
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
を取得するページが最初にロードの後ろ
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>
コードボタン12
そして、フェードインとフェードアウトが正しく行われます。履歴情報を含むURLを取得して新しいタブにロードしようとすると、Button 12は正しく表示されますが、フェードアウトされたままです。私は、最初に読み込まれたページを参照して部分ポストバックが発生した場合にのみ、OnUpdatedが実行されると言う人がいると聞いていました。私は推測していますそれは決して退屈になるので、歴史によってロードするときにpartialpostbackを偽造していないと推測しています。
私はちょうど私が見つけることができたか、または私はいくつかのジャバスクリプトを注入手動でフェードインを呼び出す?この問題は、私がそこに助けを求めることがほとんどないと思えるほど簡単です。
ありがとうございました
私はまた、javascriptでそれを行う上でのヒントを取るでしょう。 $(document).readyとSys.WebForms.PageRequestManager.getInstance()で修正しようとしました。add_endRequest(EndRequestHandler);アニメーションが行われる前にすべて実行されます。 – jheizer