Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

ASP button not firing event on intial Click.

Posted on 2004-08-04
3
Medium Priority
?
415 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
  • 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 2000 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

Technology Partners: 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

This article covers the basics of the Sass, which is a CSS extension language. You will learn about variables, mixins, and nesting.
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…
Suggested Courses

877 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