2011-01-12 2 views
4

私はContentPemplateを指定したUpdatePanelを持っています。ページが読み込まれると、ページの他の部分でAJAXの作業を行うことができます。その作業が終わった後、UpdatePanel内のコンテンツのみを更新したいのですが、ボタンを押さずに、AJAXの作業が終了したら自動的にJavaScriptを使用して行う必要があります。どのようにトリガーボタンを手動でクリックせずにそれを行うには?トリガーボタンのないUpdatePanelアップデート

EDIT:

[OK]を、私は_doPostBackルール、およびページ全体が掲載されていることを続いてきました。

<asp:UpdatePanel ID="panelAttachments" runat="server"> 
     <ContentTemplate> 
    ........ 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <input type="text" name="test" onchange="__doPostBack('<%=panelAttachments.UniqueID %>',''); return false;" /> 
</td> 

おかげで、パヴェル

答えて

7

はJavaScriptから更新パネルをリフレッシュするには、次の

__doPostBack(updatePanelUniqueID,'');

最初のパラメータはUpdatePanel.The第2パラメータの一意ID(ないCientID)であり、任意です渡すことができる引数は、サーバーコードで使用できるものです。あなたは、

Request.Form["__EVENTTARGET"]; 
Request.Form["__EVENTARGUMENT"]; 

しかし、あなただけのパネルをリフレッシュしたいと、クライアントからの追加情報を渡す必要がない場合:両方は、ASP.NETで隠しフォームフィールドに格納されていますが分離コードでそれらにアクセスすることができます2番目の引数を無視することができます。

ASP.NETによって生成されたHTMLを非同期ポストバックコントロールで見ると、これはまさにこのように見えます。

+0

たとえば、テキスト入力のTextChangedイベントなど、JavaScriptがどのように呼び出されるかを表示できますか? – DOK

+1

'' –

+1

また、 'TextChanged'はサーバー側ですイベント、 'onchange'はテキストボックスのクライアントイベントです。 'TextChanged'は、ポストバック後にサーバコードを実行させます。フォーカスがテキストボックスコントロールから離れるとすぐに、クライアントイベントが発生することに注意してください。これがあなたの望むものなら、その例は正しいですが、「仕事が終わった後」と言うと、テキストボックスが変更されるたびにそれが起こることを望まないかもしれません。このフックを任意のクライアントイベントに追加することができますが、これは状況に応じて最適な方法ではない可能性があります。 –

関連する問題