DropDownList In ModalPopup / UpdatePanel Intermittently Doesn't Fire SelectedIndexChanged
Feb 4, 2010
I've got a UserControl that's used inside of an UpdatePanel. The UserControl is a fairly simple form that appears via a ModalPopupExtender (which is also part of the UserControl). There are four DropDownLists, as well as some other UI elements. Three of the four DropDownLists have AutoPostBack="true", with SelectedIndexChanged events that fire on the server and cause some of the other DropDownLists to rebind. Two of the three DDL's that AutoPostBack are working fine. One of them, which I only just added, is showing some strange behavior. Let's say I bind five Items to it: 1, 2, 3, 4, 5. I set the SelectedIndex to 0, which makes 1 the selected item. If I select 5 and then 1 and keep toggling back and forth, everything works fine. The postback occurs and SelectedIndexChanged fires. Every time. If I ever select 2 or 4, the postback occurs but SelectedIndexChanged does not fire. Every time.
If I ever select 3, something bizarre happens and sometimes the value of the DDL reverts to 1. Even though breakpoints seem to show that it's not rebinding and no unexpected code is running. I know your first instinct will probably be that I'm wrong about the rebinding code not running, but I have literally been staring at the debugger for hours trying to find my mistake. Lots of breakpoints. I don't get it -- this really isn't that complicated. But obviously I am missing something. I've put about four hours into this so far and I think I'm just grinding at this point. I could use another perspective.
HTML (and by the way, DropProtocolCycleID is the problem control):
<asp:Panel ID="PanelPopupAssign" runat="server" Style="display:none; cursor: move; width:325px; background-color:Transparent;">
<BlueUI:Panel runat="server" ID="PanelPatientProtocol" Width="500px" HeaderText="Assign Protocol">
<table cellspacing="5">
<tr>
<td style="width:150px;"></td>
<td style="width:50px;"></td>
<td style="width:125px;"></td>
</tr>
<tr runat="server" id="TableRowCategory">
<td align="right">Category:</td>
<td colspan="2">
<asp:DropDownList runat="server" ID="DropProtocolCategories" CausesValidation="false" autopostback="true"/>
</td>
</tr>
<tr>
<td align="right">Protocol:</td>
<td colspan="2">..............................
I create a dropDownList in code-behind, in selectIndexChange of another dropDownList, and add this new dropDownList to page using a placerHolder, everthing its ok, but new dropdownlist selectIndexChange event dont fire!
I have a RadioButtonList with some fixed element and a default selected. If I uncheck the selection with javascript, on postback the SelectedIndexChanged event is not fired.
I would expect that the SelectedIndexChanged is called because the index is changed to -1.
As far as I know, the stage of data collection from the submit of the form is handled by IPostBackDataHandler.LoadPostData method.
I derived a class from RadioButtonList to verify when LoadPostData is called and I noticed that when non of the radio button is selected the method is not called and the same for SelectedIndexChanged event.
it seems that if the key of RadioButtonList is not present in the Page.Request.Form.Keys array, the LoadPostData is not called.
I just wanted to clarify if selectedIndexChanged works on ajax cascading dropdowns as mine doesn't fire. Its in a user control inside an accordion pane. I've read conflicting things about this. All I want to do is check that the last of the 3 cascading dropdowns has been populated an enable a button if so.... but the event never fires when i make a selection on the last dropdown. If it isn't suppose to fire is there a way to raise an event when the selection is made and unmade (as when you change one of the other dropdowns the value resets and the buttton needs to be disabled.
I have a DropDown which is bounded to an ObjectDataSource. On its data bound event, I am adding "--select--" value on the 0 index. I have a LinkButton on the page and on its client click, i am selecting different item on drop down (using JavaScript). Suppose there are 3 items like --select--, option1, option2 and option3 and now on link button's client click i selected option3, now if I select the default value "--select--", it does not fire the SelectedIndexChanged event. If I select any other value then it fires. Why does it not work for the default value?
I have a modalpopup that i have opening on a radiobutton selection. That works great, opens when it should and closes when you click cancel. BUT i have the following on my cancel button event that is not firing
[Code]....
I also have a button event for my "OK" button and that works great, but my cancel event doesnt seem to fire or work. Maybe the ClearSelection() is not what i need..
I want to clear the radiobutton if they cancel out of the ModalPopUp so they can make a new selection, since its a required field.
I have a gridview and dropdownlist, let say the content of dropdownlist is YEAR and the content of gridview is Name and Year. Now for everytime I change the Value of dropdownlist the content of gridview will change but it will not load the page
I'm trying to display a confirm message box before firing selectedIndexChanged when user change selection in the dropDownList. I was wondering if anyone would an example of how to do this.
I have a form which has some dropdownlists (ListItems "Yes" "No"). I use my form to Enter data & submit to database and use same form to Edit aswell. Like I redirect to this form from another page with a QueryString. If there is a QueryString then SELECT * FROM Table WHERE ID = QueryString's value & fill all the controls in the form like
[URL]
I have certain things to do when DropDownList.SelectedValue = "Yes" so I can use SelectedIndexChanged event handler & AutoPostBack="true" when submitting form for the first time. Now when I edit the information(Data filled from table as stated above). How can i automatically fire all events like DropDownlist SelectedIndexChanged in the page_Load iteslef so that all the things that are supposed to be done when DropDownList.SelectedValue = "Yes". I'm posting my test code for reference to explain what I'm trying to do. This is just the Idea. I have something else to deal with if i can get this stright. I need to dynamically add controls based on the values of DropDownList. please suggest some thing guys.
What I did is, I have made 2 user controls. One control is inside the other.
NoW one control has a buttton and a data grid and datalist in it. When pressing button I am filling datagrid while datalist visiblity false. This is working fine. But now when I press some link button in datalist data, it should call item_command event but it is not calling.
I have also used a Updatepanel as a wrapper(all controls are inside it).
I've a Detailsview that contains an updatepanel.A button is pressed within the panel and a window is displayed containing a gridview list.The user selects an item from the list, the window closes and the selected gridview item is placed in "tbResourceID" My problem however comes when the user goes to click insert the validator doesn't fire. I'm guessing this is something to do with the updatepanel isolating the validator.... my code is shown below!
When the user selects an "account" we dynamically create a linkbutton with the selected dates. However, the linkbutton onclick handler doesn't fire when the button is clicked.
Dim linkBtn As New LinkButton linkBtn.Text = "blah" AddHandler linkBtn.Click, AddressOf linkButtonHandler linkBtn.ID = panelDatesRencontre.Controls.OfType(Of LinkButton).Count panelDatesRencontre.Controls.Add(linkBtn) ScriptManager1.RegisterAsyncPostBackControl(linkBtn) Dim Trigger1 As New AsyncPostBackTrigger Trigger1.ControlID = linkBtn.ID Trigger1.EventName = "Click" UpdatePanel2.Triggers.Add(Trigger1)
Answer: i make that in page_load, it seems to work
i have two nested gridview inside an update panel. there is a button called btnPhoneEdit inside the child grid view. when the button gets clicked, it do cause partial post back as expected but it fails to invoke btnPhoneEdit_Click.
here is how my grid view looks like and how i add my custom data source to both parent and child grid view. [Code]....
I'm trying to do a similar thing -- I have a long form and in part of it, I have an updatepanel.
Inside the updatepanel I have:5 dropdowns (using the CascadingDropdown functionality)One AddProduct ButtonGrid or Repeater (haven't set it up yet)
I want the following to happen:I have the AddProduct Button disabled initially, but I want it to be enabled once the 5th dropdown is selected (so OnSelectedIndexChanged).If they click the AddProduct button, I want it to populate a Grid or Repeater.So far I am just trying to show what the selection was in a label... but nothing happens. I have an OnSelectedIndexChanged function for the last dropdown, so it enables the button, but that doesn't appear to get called. Previously, before disabling the button, I tried updating the label on button click -- and nothing there either.
It just seems like, because they are in the updatepanel, those callbacks never happen. I also do have UpdateMode = Conditional and I have both items in the triggers list.
I have an UpdatePanel with a GridView. This GridView has a template column that is a DropDownList. The problem is that the SelectedIndexChanged event does not fire for the DropDownList. Here is the code:
i read article "using javascript with asp.net radiobuttonlist control" and i found it useful.
[var RB1 = document.getElementById("<%=RadioButtonList1.ClientID%>"); var radio = RB1.getElementsByTagName("input"); if am setting radio[1].checked = 1; the item is checked. ]
I'm using VS2008. When a dataset is bound to the DataSource of a ListView, SelectedIndexChanged event does not fire. If I used DataSourceID instead, it has no problem. But SelectedIndexChanging event fires for both.
why and how I can get SelectedIndexChanged event fired when DataSource is used?