Frage

Ich mag fragen, wie kann ich einen HTML-Anker (ein Element) oder sogar jedes Objekt ein Postback zu tun oder eine serverseitige Methode auszuführen? Ich möchte eine benutzerdefinierte Schaltfläche (ein mit einigen divs gewickelt einige benutzerdefinierte sie zu tun) schaffen, und ich will OnClick implementieren aussehen wie die ASP.NET Linkbutton zu sein?

Wie

<a href="#" onclick="RunServerSideMethod()">Just a simple link button</a>
War es hilfreich?

Lösung

Standardmäßig verwenden Kontrollen __doPostBack die Postbacks an den Server zu tun. __doPostBack nimmt die UniqueID der Steuerung (oder in HTML, der Name Eigenschaft des HTML-Elements). Der zweite Parameter ist der Name des Befehls Feuer.

Also für eine benutzerdefinierte Schaltfläche, macht in den Ausgabestrom:

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

In Ihrer benutzerdefinierten Schaltfläche, fügen Sie den IPostBackEventHandler, und diese __doPostBack Aussage wird seine RaisePostBackEvent Methode für Sie automatisch ausgelöst.

Andere Tipps

Verwenden Sie eine serverseitige HTML-Steuerelement, HtmlAnchor , die eine Server-Seite ein Tag.

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

Fügen Sie einfach auf Anker-Tag. -> runat = "server" OnServerClick = "Ihr Funktionsname", es löst Ihr Problem

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 

Um dies zu tun, ohne auf ASP.NET angewiesen, RunServerSideMethod () soll eine Javascript-Funktion, die Ajax verwendet eine Anfrage an den Server zu senden.

Versuchen Sie, diese Anleitung Ajax: http://www.w3schools.com/ajax/

Sie können auch ASP-Code verwenden, um von innerhalb des eigentlichen HTML-Code wie folgt.

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

Dies würde eine Methode ausführen YourASPMethod () in der aspx.cs-Datei bezeichnet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top