0

更新パネル内の ASP.NET VB PostBack

このエラーでJS関数をロードしようとしています(エラーが表示されるはずのオーバーレイとポップアップの読み込みを閉じます)。ラベルを表示しようとすると、問題なく動作します (もちろん、オーバーレイで覆われています)。

Me.lblerrormsg.Visible = True 

スクリプトを登録するために見つけた 3 つの異なるアプローチを試しました。

Dim errorScript = "<script>alert('WTF');</script>" '<-- not even this works

Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "errorDemoManual",
     errorScript, True)

'Tried this one with the Panel & Page itself...
ScriptManager.RegisterStartupScript(pnlPatientInfo, pnlPatientInfo.GetType(), 
     "ErrorDemo", errorScript, True)

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorScript",
     errorScript, True)

どれも機能していません...ここで欠けているものはありますか??

4

2 に答える 2

1

問題は、RadScriptManager(Telerik UpdatePanelsの一部)を使用して機能させる必要があることでした。

RadScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "errorDemoManual", "errorDemoManual();", True)
于 2012-08-28T22:51:54.240 に答える
1

(私は間違っているかもしれませんが) これらのメソッドは、スクリプトを HTML ページformの最初または最後に追加することによってのみ機能するため、それらのいずれも機能するとは思いません。たとえば、更新パネル内でリテラル コントロールを使用して、スクリプトを ajax 応答に直接レンダリングできるかもしれませんが、それにはいくつか問題があったことを思い出します。数年が経ちましたが、この質問の行に沿って実行されているようです: SCRIPT タグが Internet Explorer の AJAX 応答から削除されました。注: 彼らは明らかに、応答として送信される html を微調整することで問題を解決しました。やや_安全な賭けは、更新パネルに必要なものがすべて含まれている何らかの非表示の入力またはコンテンツを用意し、更新パネルが更新されたときにのみ実行され、非表示の入力またはコンテンツに基づいて何かを起動させるある種の JavaScript を用意することです。 . もちろん、これは簡単にセットアップと保守を行うのに苦労する可能性があります (おそらく、event一部の JavaScript ライブラリが提供するある種の汎用メカニズムを使用している場合を除きます)。

于 2012-08-28T15:24:38.317 に答える