Prevent an Asp.Net Button from triggering a Postback

Sometimes, you want an Button to not trigger a postback.

One solution is, don't use an button, use an html input or link tag instead. However, you may want to use an asp:XXXButton for consistency with the rest of your page; or it may seem a simple way to make the text on the button localisable (although you can equally achieve that on a plain old html control if you give it an id, a runat="server" and probably a meta:resourcekey); or you may have other stuff you want to do with it serverside.

To stop an button causing a postback, do it like this:

<asp:LinkButton id="btnX" OnClientClick="return false;" runat="server" />

The more likely scenarios is, that you want to run clientside javascript. In that case, put ";return false;" after your javascript call:

<asp:LinkButton id="btnX" OnClientClick="functionToCall();return false;" runat="server"/>

Localising programmatically in code behind

The usual examples for localisation are for the aspx markup page, not for the code behind.

In fact localisation, accessing localisation resource files programmatically, in code behind is also dead simple. You use GetLocalResourceObject() like so:

ctrl.Text = (string)GetLocalResourceObject("myCtrlKey.Text");
ctrl.AnotherAttribute = (string)GetLocalResourceObject("myCtrlKey.AnotherAttribute");

Using LocalResource means that for a page called MyPage.aspx, you have created a resource file called MyPage.aspx.resx and/or MyPage.aspx.{culturename}.resx in the special directory App_LocalResource.

If you like GlobalResources instead of local, use the special directory App_GlobalResource
to hold a resource file called MyResourceFileName.resx and call:

ctrl.Text= (string)GetGlobalResourceObject("MyResourceFileName", "myGlobalKey");

as per

For a bit more of an overview of localisation, the page at should only take you a few minutes to scan.