Solved

ASP button not firing event on intial Click.

Posted on 2004-08-04
3
393 Views
Last Modified: 2010-04-06
I have a page that has X amount of ASP buttons on it. These buttons are dynamically generated. I also have 1 statick Button on the page, near the bottom (submit).

I have an issue with the dynamic buttons. The buttons's purpose is to switch items from one list box to another, by traversing through the controls on the page.

When you select the items you want moved, and click a button, the page will postback to itself, but the SENDER will be the page, and not the button.  

The page refreshes.

Now, if you try and use the buttons to switch the items, it works perfectly, as it should.

This will also happen if you use the static submit button... but it submits right away, and the buttons to switch items works after that too.

So... my question is, is there a way for these buttons to call the event on the first click? Is there  a hack around it?
Here is the declaration of my buttons:

                          <asp:button cssclass="BoxType42"  id="btnDisAllow" Text="DisAllow" onclick="SwitchItem" runat="server" />
                        </td><asp:button cssclass="BoxType42"  id="btnAllow" Text="Allow" onclick="SwitchItem"   runat="server" />

0
Comment
Question by:icompass
[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
3 Comments
 
LVL 6

Expert Comment

by:viola123
ID: 11722717
i suggest you using a boolean variable to control this process. the code to achieve that could be:

protected bool status = true;

private void Page_load(........)
{
.....................
}

private void SwitchItem()
{
       if (status == true)
       {
            ................
            ................
            ................
            ................// this is your original code
           
            status = false;  // set it as false, so you code won't be processed next time

        }
}
0
 
LVL 6

Expert Comment

by:viola123
ID: 11723331
sorry, i misunderstand you just now. the solutions should be:

1. for your static submit button:
<form id="form1" method="get" action="thispage.aspx?status=1">
        <input type="submit" value="Submit form">
</form>

2. in the code behind of your aspx page,eg. thispage.aspx.cs:
protected string status="0";

private void Page_load(........)
{
     status = Request.Params["status"].ToString();
}

private void SwitchItem()
{
       if (status != "1")
       {
            ................
            ................
            ................
            ................// this is your original code
           
            status = "0";  // set it as 0, so you code won't be processed next time
        }
}
0
 
LVL 1

Accepted Solution

by:
MrBic earned 500 total points
ID: 11727426
Viola123 hit it, but we gota take it a step further.

Seeing your buttons are dynamically created, we need a query string for them, so your code behind knows which itteration of the repeater you're using.

The repeater will name controls like :  RepeaterName__ctl00_IDofControl

so Grab the ctl00 or ctl312 , whatever it may be, and throw that into a QS. Read that in on the page load, and go from there.

You could use JS to change the QS of the form, but .NET has had issues with that in the past with a server side form tag.


Hope this helps!

/Bic
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Suggested Solutions

Most of the sites are being standardized with W3C Web Standards. W3C provides lot of web standard services to the web. They have the web specification, process and documentation for all the web standards. You can apply HTML, CSS and Accessibility st…
SASS allows you to treat your CSS code in a more OOP way. Let's have a look on how you can structure your code in order for it to be easily maintained and reused.
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

710 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