We help IT Professionals succeed at work.

DropDownList for Inside UpdatePanel not firing on SelectedIndexChanged() event

P1ST0LPETE
P1ST0LPETE asked
on
Hi Experts,

Please review the attached relevant code first.

As you can see I am dynamically adding a DropDownList to a panel which is inside an update panel.  The DDL is being added to the page during page load.  My problem is that when I select a new item / change the selected index of the DDL, nothing happens - and I should be expecting the SelectedIndexedChange() event to fire.  Can you explain what I'm doing wrong?

Thanks.
//HTML:
<asp:UpdatePanel ID="ProgramGrid" runat="server" UpdateMode="Conditional">
    <ContentTemplate>                        
        <asp:Panel ID="headerRow" runat="server" CssClass="HeaderRow" />
        <br />
        <asp:Panel ID="ProgramStages" runat="server" />
        <div id="HiddenData">
            <asp:HiddenField ID="hfRowComments" runat="server" />
            <asp:HiddenField ID="hfSelectedRow" runat="server" />
            <asp:HiddenField ID="hfRowCount" runat="server" />
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="lkAddRowAbove" />
        <asp:AsyncPostBackTrigger ControlID="lkAddRowBelow" />
        <asp:AsyncPostBackTrigger ControlID="lkDeleteRow" />
    </Triggers>
</asp:UpdatePanel>



//C# adding DDL to UpdatePanel:

Panel stage = new Panel();
stage.ID = "Stage" + row;
stage.CssClass = "Row";

DropDownList typeDDL = CreateDDLCell(row, 2);
typeDDL.SelectedIndexChanged += new EventHandler(typeDDL_SelectedIndexChanged);
typeDDL.Attributes.Add("OnFocus", "CloseDropDown(); RecordBlastChillType(this)");
AddCellToRow(ref stage, typeDDL);

ProgramStages.Controls.Add(stage);

Open in new window

Comment
Watch Question

Commented:
You haven't set autopostback on the dropdownlist.

Also you may need to manually add it to the postbacktriggers collection for the updatepanel but I'm not certain, turn on autopostback forst and see if it works first.

Author

Commented:
Setting AutoPostBack = true fixed it. Thanks.