2011-10-20 162 views
1

他の人が過去に持っていたことがあるが、私は解決策を見つけることができませんでした。ASP.Net - ポストバックを発生させずにサーバー側でボタンのイベントを発生させよう

私は一度クリックしたページ上のASP.Netリンクボタン(またはボタン)を使用したいのですが、サーバー側でイベントコードが発生しますが、ポストバックを引き起こしたくありません。

これらのコントロールはデザインによってポストバックを引き起こすためのもので、「return false;」を追加することで無効にすることができます。 Onclientclickパラメータ(あるいは、Attributes.Add( "onclick"、return false ");)を使用しますが、これは私が求めているものではないことに注意してください。私の質問は本質的に、ポストバックを起こすことなくクライアントサイドからの側でも可能ですか?これは可能ですか(質問自体にいくつかの論理的な問題を感じることができますが、他のいくつかの人々は同じ問題を抱えています)。

そして、私は最近出会っ:ポストバックが発生するコントロールを特定する方法について説明し http://ryanfarley.com/blog/archive/2005/03/11/1886.aspx

を多分これは何とかイベントを発射まだポストバック効果を無効にすることで役立ちますもしそうなら、どのようにページのリフレッシュ効果を避けることができます(私は。?何も持っていないPage_Loadが、ページはまだ "リフレッシュ"または再レンダリングされます。私はこれを避けられますか?私はまだ方法を考え出していない。

ありがとうございます。

答えて

0

私が知る限り、これは不可能です。

0

ボタンをUpdatePanelに置くと、代わりに部分再生が開始されるため(ページがリロードされない)

3

サーバー側のイベントを呼び出すには、サーバーにデータを送信する必要があります。ポストバックを停止すると、送信されるデータが停止するため、サーバーはクライアント上で何が起こったかについて決して知らないでしょう。

ページの修正を避けたい場合は、AJAXを使用することです。 ASP.NETのWebフォームで最も簡単な方法は、UpdatePanelのものをラップすることです。もう1つの方法は、PageMethodsをクライアントサイドスクリプト(本質的にサーバー側のプロキシとして機能するクライアント側スクリプトからWebサービスを呼び出す)で使用する方法です。

1

あなたが必要とするクライアントサイドの変更を行うボタンによってトリガされたJavaScriptをコード化するだけではどうですか。イベント中にサーバーから動的データが必要な場合は、サーバーからajaxを使用して動的データをフェッチできます。

関連する問題