16

ASP.NETボタンがありますが、最近、標準のHTMLボタンに置​​き換えました... 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モーダルダイアログに変更しましたが、質問に答えるのを待ちません。ポストバックはすぐに発生します...そこで、標準のHTMLに変更することにしました。ボタン...しかし、ASP.NETページにポストバックして、のようなメソッドを呼び出す必要があります。

ポストバックしただけでは、クリーンアップは呼び出されません

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

6 に答える 6

6

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

于 2009-04-15T18:16:14.137 に答える
4

ポストバック時にイベント ハンドラーをトリガーする場合は、__EVENTTARGET 隠しフィールドを適切な値に設定する必要があります。ただし、別の方法で行います。イベント ハンドラーが関連付けられているモーダル ダイアログに ASP ボタンを配置します。ダイアログをポップアップするクリック ハンドラーが false を返すようにします (そのボタンのクリックからポストバックが発生しないように)。このようにして、フォームが ASP ボタンからポストバックされ、クライアント側の非表示フィールド設定を含むハンドラーが自動的に呼び出されます。

于 2009-04-15T12:16:58.790 に答える
1

私はグーグルでこの投稿に出くわしたので、他の人もそうだと思います。ここで試した方法はうまくいきませんでした。私の解決策を説明しますが、最初に私がやろうとしていることの概要を説明します。

jQuery ajaxを使用してWebサービスにデータを投稿するフォームがあり、Webサービスがデータベースを更新します。セキュリティ上の理由から、ajax 呼び出しで使用する完全なファイル パスを取得して Web サービスに渡すことはできません。したがって、通常の asp.net ポストバックで行う必要があります。したがって、私のジレンマは両方を行う方法です。私がしたことは、ajax関数を使用してデータベースを更新することでした。Webサービスから成功したら、コードビハインドの特定のメソッドにポストバックし、どこにでもリダイレクトするようにフォームに指示します。 $("#Button1").click(function () { javascript: __doPostBack('ctl00$ContentPlaceHolder1$atest', '') });

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

于 2010-12-20T04:45:24.503 に答える
0

false を返すことで、それが WebControl であるか標準の HTML ボタンであるかに関係なく、ボタンの onclick イベントに関連付けられている JS でポストバックを停止できるはずです。

例えば<input type="image" id="test" onclick="doWhatever();return false;" />

于 2009-04-15T12:19:37.177 に答える