I have an ASP.NET linkbutton control on my form. I would like to use it for javascript on the client side and prevent it from posting back to the server. (I’d like to use the linkbutton control so I can skin it and disable it in some cases, so a straight up tag is not preferred).
How do I prevent it from posting back to the server?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
ASPX code:
<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>
Code behind:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}
}
What renders as HTML is:
<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')" rel="nofollow noreferrer noopener">clicky</a>
In this case, what happens is the onclick functionality becomes your validator. If it is false, the “href” link is not executed; however, if it is true the href will get executed. This eliminates your post back.
Method 2
This may sound like an unhelpful answer … But why are you using a LinkButton for something purely client-side? Use a standard HTML anchor tag and set its onclick action to your Javascript.
If you need the server to generate the text of that link, then use an asp:Label as the content between the anchor’s start and end tags.
If you need to dynamically change the script behavior based on server-side code, consider asp:Literal as a technique.
But unless you’re doing server-side activity from the Click event of the LinkButton, there just doesn’t seem to be much point to using it here.
Method 3
You can do it too
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');<b>return false"</b>...
And it stop the link button postback
Method 4
Just set href=”#”
<asp:LinkButton ID="myLink" runat="server" href="#" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener">Click Me</asp:LinkButton>
Method 5
I think you should investigate using a HyperLink control. It’s a server-side control (so you can manipulate visibility and such from code), but it omits a regular ol’ anchor tag and doesn’t cause a postback.
Method 6
Just been through this, the correct way to do it is to use:
OnClientClickreturn false
as in the following example line of code:
<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false;" />
Method 7
In C#, you’d do something like this:
MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
Method 8
Instead of implement the attribute:
public partial class _Default : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}}
Use:
OnClientClick="return false;"
inside of asp:LinkButton tag
Method 9
To avoid refresh of page, if the return false is not working with asp:LinkButton use
href="javascript: void;" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener"
or
href="#" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener"
along with OnClientClick="return false;"
<asp:LinkButton ID="linkPrint" runat="server" CausesValidation="False" href="javascript: void;" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener"
OnClientClick="javascript:self.print();return false;">Print</asp:LinkButton>
Above is code will call the browser print without refresh the page.
Method 10
call java script function on onclick event.
Method 11
Have you tried to use the OnClientClick?
var myLinkButton = new LinkButton { Text = "Click Here", OnClientClick = "JavaScript: return false;" };
<asp:LinkButton ID="someID" runat="server" Text="clicky" OnClientClick="JavaScript: return false;"></asp:LinkButton>
Method 12
Something else you can do, if you want to preserve your scroll position is this:
<asp:LinkButton runat="server" id="someId" href="javascript: void;" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener" rel="nofollow noreferrer noopener" Text="Click Me" />
Method 13
Why not use an empty ajax update panel and wire the linkbutton’s click event to it? This way only the update panel will get updated, thus avoiding a postback and allowing you to run your javascript
Method 14
No one seems to be doing it like this:
createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else { this.innerHTML='Please Wait'; }");
This seems to be the only way that works.
Method 15
In the jquery ready function you can do something like below –
var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);
Method 16
You might also want to have the client-side function return false.
<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />
You might also consider:
<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>
I use the clickable class to set things like pointer, color, etc. so that its appearance is similar to an anchor tag, but I don’t have to worry about it getting posted back or having to do the href=”javascript:void(0);” trick.
Method 17
use html link instead of asp link and you can use label in between html link for server side
control
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0