2009-04-15 16 views
15

私はASP.NETボタンを持っていますが、最近、標準のHTMLボタンに置​​き換えました。私は、ASP.NETページへのポストバックを行い、メソッドが呼び出されていることを確認します。jQueryを使用したASP.NETポストバック?

前のボタンは、ASP.NETボタンだったので、私はこのイベントを持っていた:

Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
    UtilTMP.DisposeObjects() 
    Server.Transfer("~\Forms\test.aspx", True) 
End 

しかし、私はJavaScriptをALERTとボタンを使用していたと私は最近、jQueryのUIモーダルダイアログに変更したが、それはdoesnの私が質問に答えるのを待ってはいけません。ポストバックは即座に起こります...私は標準のHTMLボタンに変更することにしました...しかし、私はASP.NETページにポストバックし、次のようなメソッドを呼び出す必要があります。

私はちょうどそれはあなたがポストバックのイベントハンドラをトリガしたい場合は、適切な値に__EVENTTARGET隠しフィールドを設定する必要がクリーンアップに

Protected Sub Cleanup() 
    UtilTMP.DisposeObjects() 
    Server.Transfer("~\Forms\test.aspx", True) 
End 
+0

Googleからこれを見つけた場合は、私の答えをチェックしてください。 –

答えて

6

JQueryでポストバックを行うことはできますが、 bメソッド(あなたのページにあるWebサービス)。ページ全体のViewStateをポストしていないため、呼び出しが高速になる可能性もあります。

+4

これは動作しますが、ポストバックでこれを行う方法です。したがって、Webサービスメソッドを宣言する必要はありません。 –

+0

FWIW、ChromeがそのURLのマルウェア警告を表示します – dlchambers

+0

リンクが機能しなくなりました。サイトに悪意のあるソフトウェアが含まれていると思われるため、Chromeは私を経由しません。 – Ortund

4

を呼び出すことはありませんポストバック場合。しかし私はそれとは違ったやり方をするだろう。モーダルダイアログにASPボタンを配置し、イベントハンドラを関連付けます。ダイアログをポップアップするクリックハンドラがfalseを返すようにしてください(ポップバックがそのボタンから発生しないように)。これによりフォームがASPボタンからポストバックされ、クライアント側の隠しフィールド設定を含むハンドラが自動的に呼び出されます。

0

falseを返すことで、WebControlまたは標準のHTMLボタンであるかどうかに関わらず、JS onclickイベントにJSがアタッチされた状態でポストバックを停止できるはずです。

など。 <input type="image" id="test" onclick="doWhatever();return false;" />

15

これが役立つかどうかを確認してください:http://www.codeproject.com/KB/aspnet/sample.aspx

protected void foo(object sender, EventArgs e) 
{ 
    // Do something here 
} 

が、あなたはこれで、このアンカーのonclickの関数を呼び出すことができます:あなたはfooメソッドを宣言する必要があり、背後にあるあなたのコードでは

<a id="anchorId" runat="server" onclick="return true" onserverclick="foo"></a> 

基本的には、ダミーのアンカータグを宣言しますjavascript:

document.getElementById('anchorId').click() 
+0

これは別のオプションです: http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx – David

4

この記事をチェックしてください

http://www.deviantpoint.com/post/2009/03/12/Using-jQuery-UI-Dialogs-for-confirmation-windows.aspx

基本的な考え方は、私はそれがで働く持っているために、これを使用しますが、隠しフィールドにコールバック機能を配置し、$(this).dialog('close');

上にevalを実行していますあなたがコメントを残してそれを行う方法を知りたい場合は、Gridviewので。

0

私はGoogleを介してこの投稿に出くわしたので、他の人もそうだと思う。私はここで私のために働かなかったメソッドを試してみました。私は私の解決策を説明しますが、最初に私がしようとしていることの概要です。

jQuery ajaxを使用してWebサービスにデータを投稿し、データベースを更新するフォームがあります。私は画像アップロードフォームを持っています。セキュリティ上の理由から、ajax呼び出しで使用する完全なファイルパスをWebサービスに渡すことができません...したがって、通常のasp.netポストバックを使用しなければなりません。だから、私のジレンマは両方を行う方法です。私がやったことは、データベースを更新するために私のajax関数を使っていました。私はWebサービスから成功した後、コードビハインドの特定のメソッドへのポストバックを行い、どこにでもリダイレクトするようにフォームに指示します。

これは基本的に私がjavascriptに実行するボタンをクリックする代わりに、asp.netコントロールにクリック機能を割り当てるのとまったく同じです。 atestは、asp.netコントロールに割り当てられたIDです。
注:<%=myclientid.ClientID %>はここでは機能しません。

+1

<%= myclientid.ClientID%>は機能しませんが、<%= myclientid.UniqueID%>は機能します。 –

関連する問題