11

ポストバックを実行したり、サーバー側のメソッドを実行したりするために、HTMLアンカー(要素)または任意のオブジェクトを作成するにはどうすればよいですか?カスタムボタン(いくつかのカスタムボタンを実行するためにいくつかのdivでラップされている)を作成したいのですが、ASP.NET LinkBut​​tonのように見えるようにOnClickを実装したいですか?

好き

<a href="#" onclick="RunServerSideMethod()">Just a simple link button</a>
4

6 に答える 6

14

HtmlAnchorサーバー側タグであるサーバー側 HTML コントロールを使用します。

<asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
于 2010-03-19T12:05:44.877 に答える
10

デフォルトでは、コントロールは __doPostBack を使用してサーバーへのポストバックを行います。__doPostBack は、コントロールの UniqueID (または HTML では、HTML 要素の name プロパティ) を取ります。2 番目のパラメーターは、起動するコマンドの名前です。

したがって、カスタム ボタンの場合は、出力ストリームにレンダリングします。

<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');">val</a>

カスタム ボタンに を追加するIPostBackEventHandlerと、この__doPostBackステートメントがそのRaisePostBackEventメソッドを自動的に起動します。

于 2010-03-19T12:13:23.713 に答える
1

1 つの回避策
として、アンカー タグのクライアント側イベントでダミー ボタン クリックを呼び出します。これにより、デフォルトでこのダミー ボタンのサーバー側イベントが呼び出されます。したがって、サーバー側のコードをこの dummyButton サーバー イベントに配置すると、アンカー タグのクライアント側イベントを呼び出すと、このサーバー側のダミー ボタン イベントが呼び出されます。

コード:

<a id="ancLink" href="javascript:void(0);" >back</a>

<asp:Button ID="dummyRefresh" runat="server" OnClick="BtnRefreshOnclick" style="display:none"/>

Javascript:

ancLink.live("click", function () {
         callDummyButtonServerEvent();
    });

function callDummyButtonServerEvent() {

    $('input[id$=dummyRefresh]').click();   

}
于 2011-09-23T05:14:19.720 に答える
0

ASP.NET に依存せずにこれを行うには、RunServerSideMethod() を、Ajax を使用してサーバーに要求を送信する JavaScript 関数にする必要があります。

次の Ajax チュートリアルを試してください: http://www.w3schools.com/ajax/

于 2010-03-19T12:08:02.437 に答える