Quantcast
Channel: ASP.NET AJAX + Ajax Control Toolkit (ACT)
Viewing all articles
Browse latest Browse all 5678

Why is a dynamically added ajax collapsible panel extender causing an error?

$
0
0

I have several aspx web pages in a project that generate content at run time and add controls dynamically. Everything works perfectly except for an addition I am trying to make in order to add an ajax collapsible panel extender dynamically also.  When I add the code to generate the extender to a dynamically generated row in a table that is static and already exists on the web page I get this:

[InvalidOperationException: An extender can't be in a different UpdatePanel than the control it extends.]
   System.Web.UI.ExtenderControl.RegisterWithScriptManager() +386
   AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) +67
   AjaxControlToolkit.ModalPopupExtender.OnPreRender(EventArgs e) +249
   System.Web.UI.Control.PreRenderRecursiveInternal() +162
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Control.PreRenderRecursiveInternal() +256
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6925

Problem is there is not an update panel anywhere on the page and none are generated in the dynamically added controls so I am baffled why I am getting this error message. Following is the code that is causing the error. It dynamically generates the controls for the extender and adds the extender to an existing table as an new row .

                (create expander controls)
Dim NewRowExpander As New TableRow Dim NewCellExpander As New TableCell Dim MyLabelExpander As Label = New Label Dim MyLabelExpanderDisplay As Label = New Label Dim MyTableExpander As New Table Dim MyTableRowExpander As New TableRow Dim MyTableCellExpander1 As New TableCell Dim MyTableCellExpander2 As New TableCell Dim MyRowExpander As New TableRow Dim MyCellExpander As New TableCell Dim MyPanelExpander As Panel = New Panel Dim MyButtonExpander As ImageButton = New ImageButton Dim MyExpander As New AjaxControlToolkit.CollapsiblePanelExtender (create expander label)
MyLabelExpander.Width = New Unit("100%") MyLabelExpander.Height = New Unit("20px") MyLabelExpander.CssClass = "handpointer" MyLabelExpander.ClientIDMode = ClientIDMode.Static MyLabelExpander.ID = "ExpanderLabel" + RowCount.ToString.Trim (create expander button)
MyButtonExpander.Width = New Unit("10px") MyButtonExpander.Height = New Unit("10px") MyButtonExpander.ImageAlign = ImageAlign.AbsMiddle MyButtonExpander.ImageUrl = "/App_Pages/Handlers/Image.ashx?ID=DownArrow" MyButtonExpander.ClientIDMode = ClientIDMode.Static MyButtonExpander.ID = "TableExpanderButton" + RowCount.ToString (create display label for expander display panel)
MyLabelExpanderDisplay.Width = New Unit("100%") MyLabelExpanderDisplay.Height = New Unit("100%") MyLabelExpanderDisplay.ClientIDMode = ClientIDMode.Static MyLabelExpanderDisplay.ID = "ExpanderLabelDisplay" + RowCount.ToString.Trim (create expander table cell 1)
MyTableCellExpander1.VerticalAlign = VerticalAlign.Top MyTableCellExpander1.HorizontalAlign = HorizontalAlign.Center MyTableCellExpander1.Width = New Unit("100%") MyTableCellExpander1.Height = New Unit("20px") MyTableCellExpander1.Controls.Add(MyLabelExpander) MyTableCellExpander1.ClientIDMode = ClientIDMode.Static MyTableCellExpander1.ID = "TableCellExpanderDisplayTop" + RowCount.ToString MyTableCellExpander1.Controls.Add(MyLabelExpander) (create expander table cell 2)
MyTableCellExpander2.VerticalAlign = VerticalAlign.Top MyTableCellExpander2.HorizontalAlign = HorizontalAlign.Center MyTableCellExpander2.Width = New Unit("100%") MyTableCellExpander2.Height = New Unit("20px") MyTableCellExpander2.Controls.Add(MyButtonExpander) MyTableCellExpander2.ClientIDMode = ClientIDMode.Static MyTableCellExpander2.ID = "TableCellExpanderDisplayBottom" + RowCount.ToString MyTableCellExpander2.Controls.Add(MyButtonExpander) (create expander table row)
MyTableRowExpander.Width = New Unit("100%") MyTableRowExpander.VerticalAlign = VerticalAlign.Top MyTableRowExpander.Height = New Unit("20px") MyTableRowExpander.CssClass = "information" MyTableRowExpander.ClientIDMode = ClientIDMode.Static MyTableRowExpander.ID = "TableRowExpanderDisplay" + RowCount.ToString MyTableRowExpander.Controls.Add(MyTableCellExpander1) MyTableRowExpander.Controls.Add(MyTableCellExpander2) (create expander table)
MyTableExpander.BackColor = System.Drawing.Color.FromArgb(0, GridBackColor1, GridBackColor2, GridBackColor3) MyTableExpander.ForeColor = System.Drawing.Color.FromArgb(0, GridTextColor1, GridTextColor2, GridTextColor3) MyTableExpander.BorderStyle = BorderStyle.None MyTableExpander.Width = New Unit("100%") MyTableExpander.Height = New Unit("20px") MyTableExpander.CellPadding = 0 MyTableExpander.CellSpacing = 0 MyTableExpander.CssClass = "rounded" MyTableExpander.ClientIDMode = ClientIDMode.Static MyTableExpander.ID = "TableExpanderDisplay" + RowCount.ToString MyTableExpander.Controls.Add(MyTableRowExpander) (create expander display panel)
MyPanelExpander.BorderStyle = BorderStyle.None MyPanelExpander.BorderWidth = New Unit("0px") MyPanelExpander.ClientIDMode = UI.ClientIDMode.Static MyPanelExpander.Controls.Add(New LiteralControl("<br /><b>Article:</b><br /><br />")) MyPanelExpander.Controls.Add(MyLabelExpanderDisplay) MyPanelExpander.ClientIDMode = ClientIDMode.Static MyPanelExpander.ID = "ExpanderPanel" + RowCount.ToString.Trim MyPanelExpander.Controls.Add(MyLabelExpanderDisplay) (create expander and add controls)
MyExpander.Controls.Add(MyTableExpander) MyExpander.Controls.Add(MyPanelExpander) MyExpander.Collapsed = True MyExpander.CollapsedText = "<b>More ...</b>" MyExpander.ExpandedText = "<b>Less ...</b>" MyExpander.Enabled = True MyExpander.ScrollContents = "False" MyExpander.SuppressPostBack = "True" MyExpander.CollapsedSize = "1" MyExpander.TextLabelID = MyLabelExpander.ClientID MyExpander.ExpandControlID = MyButtonExpander.ClientID MyExpander.CollapseControlID = MyButtonExpander.ClientID MyExpander.ImageControlID = MyButtonExpander.ClientID MyExpander.TargetControlID = MyPanelExpander.ID MyExpander.ClientIDMode = ClientIDMode.Static MyExpander.ID = "ExpanderLabelDisplay" + RowCount.ToString.Trim (create expander container row)
NewRowExpander.BackColor = System.Drawing.Color.FromArgb(0, GridBackColor1, GridBackColor2, GridBackColor3) NewRowExpander.ForeColor = System.Drawing.Color.FromArgb(0, GridTextColor1, GridTextColor2, GridTextColor3) NewRowExpander.BorderColor = System.Drawing.Color.FromArgb(0, GridBorderColor1, GridBorderColor2, GridBorderColor3) NewRowExpander.Width = New Unit("100%") NewRowExpander.VerticalAlign = VerticalAlign.Top NewRowExpander.HorizontalAlign = HorizontalAlign.Center NewRowExpander.BorderWidth = 0 NewRowExpander.Visible = False NewRowExpander.ClientIDMode = ClientIDMode.Static NewRowExpander.ID = "TableRowExpand" + RowCount.ToString (create expander container cell)
NewCellExpander.Width = New Unit("100%") NewCellExpander.HorizontalAlign = HorizontalAlign.Center NewCellExpander.VerticalAlign = VerticalAlign.Top NewCellExpander.BorderColor = System.Drawing.Color.FromArgb(0, GridBorderColor1, GridBorderColor2, GridBorderColor3) NewCellExpander.BorderWidth = 0 NewCellExpander.Visible = True NewCellExpander.ClientIDMode = ClientIDMode.Static NewCellExpander.ID = "TableCellExpand" + RowCount.ToString + Chr(96 + CellCount) (add expander to container cell & row to static a table that exists on the page)
NewCellExpander.Controls.Add(MyExpander) NewRowExpander.Controls.Add(NewCellExpander) TableDisplayList.Rows.Add(NewRowExpander)

If anyone has any ideas why this code is not working when all the other dynamically generated controls on the page work fine I would greatly appreciate it ... I have looked over this code for days and still cannot see what is causing this error.

Thanks in advance to anyone who is obviously much smarter than me and can catch what is happening here!

David


Viewing all articles
Browse latest Browse all 5678

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>