Selected Index event not firing

M

moondaddy

I have a dropdown combo box on a form and I have its AutoPostBack property
set to true. When I select something from the list it does a postback and
then the Page_Load event fires followed by it's SelectedIndexChanged event.

However, when I go back to this control again and select the first item in
the list, it does a postback and the Page_Load event fires, but the
SelectedIndexChanged doesn't fire. Why does the SelectedIndexChanged get
skipped when selecting the first item in the list?

In summary, I have a dropdown list. I select the 3rd item in the list and
the SelectedIndexChanged fires like it should. As I step through the code I
see the selected index = 2. Now when I go back and select the first item in
the list and step through the code I can see the selected index =0 (changed
from 2), but the SelectedIndexChanged doesn't fire.

How can I resolve this?

Thanks.
 
P

Peter O'Reilly

Make sure the event is defined (instantiated) in the IntializeComponent
procedure.
 
M

moondaddy

Can you give me an example of how I would do that? (vb.net if you can....)
Its not in the IntializeComponent and its simply declared like this:

Protected WithEvents cmbShipMethod As System.Web.UI.WebControls.DropDownList


Thanks.
 
M

[MSFT]

Hello,

Based on your description, I build a simple test web form. However, I
haven't found the problem you mentioned. I just add some code in
DropDownList1_SelectedIndexChanged:

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Response.Write("changed")
End Sub

And add a breakpoint at the line. After run the application, the breakpoint
get stopped whenever I select a item in the dropdown list control.

Can you post some of your code to clarify the problem? Maybe we can get
more detail informaiton from that.

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

[MSFT]

It is really a strange problem! After check your code, I found it seems to
be related to your base page. If I added the control on a normal web form,
it worked. Especially, with the MoveControl method in base page. Everytime
we select a item, the code in MoveControls will be executed, and it cause
the problem. If I remove the MoveControls, and add the control in another
way:

Public Class zTestDropdown
Inherits BrowserTest.BasePage

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim cc As Control = Page.LoadControl("shoppingcart.ascx")
cc.Visible = True
Me.ContentArea.Controls.Add(cc)
End Sub

This seems to fix the problem.

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

[MSFT]

Hello,

This time the 'bad" line is:

Me.cellContentContainer.Controls.Clear()

If I replace it with

Me.cellContentContainer.Controls.RemoveAt(0)

Dim l1 As New LiteralControl
Me.cellContentContainer.Controls.Add(l1)

Me.cellContentContainer.Controls.Add(cc)

Then it seem to work.

Regarding all of these issues, I suggest you may consider frameset instead
embed asp.net user control. For example, in the default.aspx:

<td id="cellContentContainer" vAlign="top" bgColor="#ccccff" runat="server">

<iframe src=home.aspx></iframe>

</td>

How about this?

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

moondaddy

I found one piece of information that may or may not lead to some insight:
I re-created this page as a stand alone page (did not inherit from the
basepage), and put all the html and code behind from the shoppingcart.ascx
into shoppingcart.aspx and noticed I was still getting the same bad
behavior. After testing it I found that cmbShipMethod's viewstate was
false. After setting it to true, I found that everything worked OK. I'm
sure that ealier I had tested viewstate as both true and false on everything
I could find to see it that would help, but for some reason it helped on
this new page. So I went back to the derived page with shoppingcart.ascx
(the one I gave you in the above posting) and found that setting the
viewstate to true or false had no effect on the behavior. My conclusion
thus far is that there might be some problem with the dropdownlist's
viewstate from the user control or because the page is inheriting from the
base page, or a combo of both.
 
M

[MSFT]

To get the event from controls. Viewstate is necessary. Regarding the
issue, I can't open you sample project "BsPgSample", it reported an error
when I open ShoppingCart.aspx. I check the code with Notepad and find the
movecontrols method is still used. This may the root cause of the problem

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

moondaddy

I have to use the movecontrols method because the base page has table in it
which is used to hold a user control for the header and another user control
for the left nav bar. with our the movecontrols method, things dont get
placed on the page correctly. the header and nav bar are on the bottom of
the page.

What kind of error did you get? could you open any other page? I would
like to send you a working sample if possible. This whole thread stems from
a shortage of good documentation and sample code for base pages in vb.net
and I've spend a ton of time trying to get a solid model working. It would
be nice if someone from MS could help in getting a proper base page working.
Please let me know what I can do so send you a sample that runs.

Thanks.
 
M

moondaddy

Thanks, I think this will fix the load problem: Attached are 2 text files,
one with the base page html and the other with the code behind. Delete the
existing base page out of the project I sent you (BsPgSample) and add a new
webworm and call it "Base.aspx". Then add the html and code behind from the
attached text files and it should run OK. Make sure that shopping.aspx
inherits from the new base correctly (Inherits BsPgSample.Base).

Please let me know if this fixed the load problem and what you can find out.
 
M

[MSFT]

Hello,

I found two files are with same content:

<%@ Page Language="vb" AutoEventWireup="false"
Codebehind="BasePage.aspx.vb" Inherits="BsPgSample.BasePage"%

Did you miss the code behind file?

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
M

[MSFT]

Hello,

Can you tell me what you want to do in selecteditemchanged actually? Maybe
I can assis you find a final solution for the problem.

regards,

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top