web-dev-qa-db-ja.com

Html Link(アンカー)にLinkBut​​tonのようにポストバックを行わせるにはどうすればよいですか?

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

お気に入り

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

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

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

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

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

9
Brian Mains

サーバー側のhtmlコントロールを使用します HtmlAnchor これはサーバー側のタグです。

<asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
14
Oded

アンカータグを追加するだけです-> runat = "server" onServerClick = "Your function name"、それはあなたの問題を解決します。

5
Nitish
One workaround could be :

invoke dummyButton click in client side event of anchor tag - which will call server side event of this dummy Button by default. so if u place ur server side code in this dummyButton server event - calling anchor tag client side event would invoke this server side dummy button event.

Code:

<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();   

}

Hope this helps.

Vardhini 
1
Vardhini

次のように、実際のHTMLコード内からASPコードを使用することもできます。

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

これにより、aspx.csファイルでYourASPMethod()というメソッドが実行されます。

0
Dean Martin

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

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

0
Justin Emery