Newbie : Adding an onclick event to server control, prevents postback.???

  • Thread starter Thread starter Dr Deadpan
  • Start date Start date
D

Dr Deadpan

Hi,

I have a .net page that basically has two buttons on it. Each
button when
rendered by the server basically seem to have a type of "SUBMIT". What
i want is to be able to disable one of the buttons when a user clicks
on it and have the server process the operation and then renable it
went it's done.

I added the following piece of code to my Page_Load event.

MyButton.Attributes.Add("onclick", "this.disabled=true;");

This worked fine except that my event handler in the code-behind,
ExportButton_Click is not fired and so nothign happens except for the
button being disabled. Can someone give me detailed information on how
this can be done as I'm relatively new to C# , Javascript and .Net.

I was reading about the RegisterOnSubmit statement and such but it
did not
seem to work. What am I missing? What is an easy way to accomplish
this?

Code snippets/ links much appreaciated.

Thanks
 
yes this is a problem.
one way around this is to hide the button instead.
if looks a bit stupid but you could have a disabled button which is hidden
until you click and hide the real button.
a bit mickey mouse but what can you do?

if you find a better way, please post it.
a
 
Instead of adding an "onClick" attribute to the button,
why not just disable it from the buttons click event?
ie. myButton.Enabled = False

I guess what you are trying to achieve is to prevent the
user from clicking the button more than once.
You should also make sure you have wired up your event
handlers for the button.

eg. protected WithEvents btnMyButton As Button

protected sub btnMyButton_Click() Handles btnMyButton.Click
end sub

This is VB code, but you need to make sure you declare
your button using 'WithEvent', and wire up the proper
event (using the 'Handles' statement) to the method that
will be handling the event.

It might also be a good idea to set the AutoEventWireup
directive in your .aspx page to False, otherwise your
event will fire twice.

Hope this helps
 
Rory said:
Instead of adding an "onClick" attribute to the button,
why not just disable it from the buttons click event?
ie. myButton.Enabled = False

I cannot do this as it won't work. What the above will do, is disable
the button once it gets bakc to the client. All the while while the
server is actually running the code in the event handler, the button
will remain Enabled and will become disabled once the code behind is
done - definitely not what I wnat. I read a post earlier on about
doing it an easier way somewhere.
Please, all you guru's , keep the comments coming..

DrD
 
Back
Top