How to let Html Link (anchor) do a postback to be like LinkButton?
Solution 1
By default, controls use __doPostBack to do the postback to the server. __doPostBack takes the UniqueID of the control (or in HTML, the name property of the HTML element). The second parameter is the name of the command to fire.
So for a custom button, render to the output stream:
<a id="someclientid" name="someuniqueid" href="javascript:void(0);" onclick="__doPostBack('someuniqueid', '');">val</a>
In your custom button, add the IPostBackEventHandler
, and this __doPostBack
statement will fire its RaisePostBackEvent
method automatically for you.
Solution 2
Use a server side html control, HtmlAnchor
which is a server side a tag.
<asp:HtmlAnchor runat="server" onclick="RunServerSideMethod">Just a simple link</asp:HtmlAnchor>
Solution 3
Just add on anchor tag --> runat="server" onServerClick="Your function name", it solves your problem.
Solution 4
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();
}
Ahmed Magdy
My name is Ahmed Magdy, I'm working as Senior Customer Engineer <developer /> at Microsoft with 16+ years experience in software development. LinkedIn - Stackoverflow Careers - @amgdy Founder of HackItRight - @hackitright
Updated on November 26, 2020Comments
-
Ahmed Magdy over 3 years
I would like to ask how can i make an html anchor (a element) or even any object to do a postback or to execute an server side method? I want to create a custom button (a wrapped with some divs to do some custom them) and i want to implement OnClick to be look like the ASP.NET LinkButton?
Like
<a href="#" onclick="RunServerSideMethod()">Just a simple link button</a>