C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: UpdatePanel更新時にJavaScripを実行したい


(過去ログ 95 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■56644 / inTopicNo.1)  UpdatePanel更新時にJavaScripを実行したい
  
□投稿者/ Mira (17回)-(2011/01/24(Mon) 14:34:44)

分類:[VB.NET/VB2005 以降] 

FrameWork 2.0での質問です。よろしくお願いします

UpdatePanelが更新される時に動的に追加されるJavaScriptを実行したいのですが何か方法はないでしょうか?
UpdatePanelなしの場合は動作しました

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:Literal ID="Literal1" runat="server" Mode="PassThrough"></asp:Literal>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
If True Then '本来は特定の条件をつけます
Literal1.Text = "<script type=""text/javascript"">document.form1.Button1.click();</script>"
Else
Literal1.Text = ""
End If
End Sub
引用返信 編集キー/
■56653 / inTopicNo.2)  Re[1]: UpdatePanel更新時にJavaScripを実行したい
□投稿者/ もりお (322回)-(2011/01/24(Mon) 22:51:00)
2011/01/24(Mon) 23:02:46 編集(投稿者)
No56644 (Mira さん) に返信

> UpdatePanelが更新される時に動的に追加されるJavaScriptを実行したいのですが何か
> 方法はないでしょうか?

思いついたところでは2つあります。
ScriptManager.RegisterStartupScript メソッドで JavaScript を登録するやり方と
ScriptManager.RegisterDataItem メソッドで戻り値を設定して、クライアント側の
イベント PageRequestManager.endRequest のハンドラーで戻り値を評価して JavaScript
の処理を行うというやり方です。

ScriptManager.RegisterStartupScript メソッドで JavaScript を登録するやり方だと
Response の処理が終わる前といいますか、非同期ポストバックが終わる前に
Button1.click() で新たに非同期ポストバックを開始することになるので、もしかすると
意図するとおりの動作をしないかもしれません。

PageRequestManager.endRequest イベントで JavaScript の処理を行うのがよいと
思います。

引用返信 編集キー/
■56658 / inTopicNo.3)  Re[2]: UpdatePanel更新時にJavaScripを実行したい
□投稿者/ Mira (18回)-(2011/01/25(Tue) 09:08:53)
> 思いついたところでは2つあります。

もりおさんありがとうございます
2つめのやり方で実現できました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -