Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

OnClick Variables

Posted on 2011-03-08
4
Medium Priority
?
401 Views
Last Modified: 2012-05-11
Hello, I am using C# to create an ASP.NET website.  Here's my issue:

I have a standard button on one page.  This button has an onclick setup to fire a method.  I have a second button on this page.  When the user clicks on this button, its onclick setup fires another method which does some stuff, BUT at the end of this method, I would like it to fire the first button's onclick method.

Currently when I add the name of the first button's onclick method ( button1_Click() ) to the end of the second button's onclick method, this error is displayed: "No overload method for..takes 0 arguments".

I know what this error means: the system wants me to include two variables when calling button1_click, which are the default:  object sender, EventArgs e

What are object sender, EventArgs e and how do I include them in my call to button1_Click from the button2_click method?

Thank you in advance.
0
Comment
Question by:karlhsc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 2000 total points
ID: 35073996
"Sender" refers to the control that raised the event. "EventArgs" will is an object that contains data about the event, in the case of a button click event eventargs doesn't tell you anything useful. If you want to manually call the method associated with the click event you can safely pass null for both arguments:
button1_Click(null, null);

Open in new window

0
 
LVL 33

Expert Comment

by:Todd Gerbert
ID: 35074096
carl_tawn is absolutely correct, I would only expand on his response slightly to say that it is usually safe to pass null for both arguments - it certainly seems to be the case you could safely do so given your current example, just wanted to point out it's not always safe (99% safe, 1% not safe).

Also, I would suggest moving the code that actually does "stuff" into it's own method(s), and then calling those methods from the button event handlers:
private void Button1_Click(object sender, EventArgs e)
{
  // Button 1 just does stuff.
  DoStuff();
}

private void Button2_Click(object sender, EventArgs e)
{
  // Button 2 does stuff, and also does other stuff
  DoStuff();
  DoOtherStuff();
}

private void DoStuff()
{
  // Do some stuff 
}

private void DoOtherStuff()
{
  // Do some other stuff
}

Open in new window

0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 35074147
@tgerbert - You are of course correct - just figured it wasn't likely to be an issue in this scenario so skimmed over it :)

Just to expand a little. It is possible to use a single event handler as the target for an event on multiple controls. In a scenario like that you may want to cast "sender" in order to find out which control raised the event and act accordingly.
0
 

Author Comment

by:karlhsc
ID: 35074186
tgerbert: thank you for the additional information.  I see the merit in the architecture you provided.
0

Featured Post

Enroll in September's Course of the Month

This month’s featured course covers 16 hours of training in installation, management, and deployment of VMware vSphere virtualization environments. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question