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>
Use a server side html control,
HtmlAnchor
which is a server side a tag.Just add on anchor tag --> runat="server" onServerClick="Your function name", it solves your problem.
To do this without relying on ASP.NET, RunServerSideMethod() should be a javascript function that uses Ajax to send a request to the server.
Try this Ajax tutorial: http://www.w3schools.com/ajax/
You could also use ASP code from within the actual HTML code as following.
This would execute a method called YourASPMethod() in the aspx.cs file.
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:
In your custom button, add the
IPostBackEventHandler
, and this__doPostBack
statement will fire itsRaisePostBackEvent
method automatically for you.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:
Javascript: