Strange Error when viewing page

N

Nathan Sokalski

When I view my index.aspx page any time after the first time, I recieve the
following error:

[HttpException (0x80004005): Multiple controls with the same ID
'TitleBanner:_ctl0' were found. Trace requires that controls have unique
IDs.]
System.Web.TraceContext.AddNewControl(String id, String parentId, String
type, Int32 viewStateSize) +313
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +201
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Page.ProcessRequestMain() +1633

TitleBanner is a user control on my page. Because I do not recieve this
error the very first time I view the page after compiling it, ASP.NET is
obviously remembering the control after I view the page the first time. I
find this error strange because _ctl0 is an automatically generated name, so
how can there be two controls with that name? I also find it strange that
the error only seems to occur on my index.aspx page, even though the control
is used in exactly the same way (same parameters and properties) on another
page in the same directory, and it does not give me an error there even when
I view it multiple times. Why might this be happening, and what might I be
able to do to fix it? Thanks.
 
G

Guest

Hi,

If you are adding the control to the webpage via code do not add
it again when the page is posting back.

If not me.postback then
' add the control here
end if

Ken
 
N

Nathan Sokalski

Yes, I am. The place that it looks like the error occurs (which is pretty
early in my code based on what I can tell, since the control it says it
finds multiple times is pretty early in the Control Tree it displays). A
note that I want to make about this control, however, is that is a control
that I generate in the Application_Start procedure and store in a collection
in the global.asax.vb file, so it is really only generated once (unless the
cache dependency removes it from cache, in which case it is generated
again). Here is my control tree, which you can see is pretty small since it
doesn't get very far:


Control Tree
Control Id Type Render Size Bytes (including children) Viewstate Size
Bytes (excluding children)
__PAGE ASP.index_aspx 0 0
_ctl0 System.Web.UI.LiteralControl 0 0
TitleBar System.Web.UI.HtmlControls.HtmlGenericControl 0 0
_ctl1 System.Web.UI.LiteralControl 0 0
_ctl2 System.Web.UI.ResourceBasedLiteralControl 0 0
Form1 System.Web.UI.HtmlControls.HtmlForm 0 0
_ctl3 System.Web.UI.LiteralControl 0 0
TitleBanner ASP.Banner_ascx 0 0
TitleBanner:lblTitle System.Web.UI.WebControls.Label 0 0
TitleBanner:_ctl0 System.Web.UI.LiteralControl 0 0



My other control, which the application never even gets to which I use for
navigation on all my pages, actually does generate the controls every time.
If you need any more info, I will be happy to give you anything I can.
Thanks.
 
N

Nathan Sokalski

I do not add the user control via code, the user control is always there.
The basic layout of the control that it looks like the error is occurring in
is as follows:



LABEL CONTROL

imagecontrol imagecontrol imagecontrol



The basic purpose of the user control is to display the title and navigation
bar. The imagecontrols, which are the navigation, are generated when the
application is started in the Application_Start procedure, and are then
stored in a collection in the global.asax.vb file. The only time they would
be generated a second time would be if they were removed from the
application cache (I created cache dependencies for this). I also want to
point out that even though my diagram above says imagecontrol 3 times, the
page in error only places one there (other pages would place more, but this
page only has one). My control tree (or at least the part shown in the
error) is as follows:


Control Tree
Control Id Type Render Size Bytes (including children) Viewstate Size
Bytes (excluding children)
__PAGE ASP.index_aspx 0 0
_ctl0 System.Web.UI.LiteralControl 0 0
TitleBar System.Web.UI.HtmlControls.HtmlGenericControl 0 0
_ctl1 System.Web.UI.LiteralControl 0 0
_ctl2 System.Web.UI.ResourceBasedLiteralControl 0 0
Form1 System.Web.UI.HtmlControls.HtmlForm 0 0
_ctl3 System.Web.UI.LiteralControl 0 0
TitleBanner ASP.Banner_ascx 0 0
TitleBanner:lblTitle System.Web.UI.WebControls.Label 0 0
TitleBanner:_ctl0 System.Web.UI.LiteralControl 0 0



I am having trouble figuring out what the LiteralControl that it stops at
is, because the user control TitleBanner does not create or use any
LiteralControls. All I can think of is that somehow ASP.NET is labeling the
<BR> tag as a LiteralControl, even though the tag is just there. If there is
any more information that might be useful in figuring out the problem, let
me know and I will be happy to give it to you. Thanks.
--
Nathan Sokalski
(e-mail address removed)
http://www.nathansokalski.com/
Ken Tucker said:
Hi,

If you are adding the control to the webpage via code do not add
it again when the page is posting back.

If not me.postback then
' add the control here
end if

Ken
----------------------------

Nathan Sokalski said:
When I view my index.aspx page any time after the first time, I recieve
the
following error:

[HttpException (0x80004005): Multiple controls with the same ID
'TitleBanner:_ctl0' were found. Trace requires that controls have unique
IDs.]
System.Web.TraceContext.AddNewControl(String id, String parentId,
String
type, Int32 viewStateSize) +313
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +201
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Control.BuildProfileTree(String parentId, Boolean
calcViewState) +263
System.Web.UI.Page.ProcessRequestMain() +1633

TitleBanner is a user control on my page. Because I do not recieve this
error the very first time I view the page after compiling it, ASP.NET is
obviously remembering the control after I view the page the first time. I
find this error strange because _ctl0 is an automatically generated name,
so
how can there be two controls with that name? I also find it strange that
the error only seems to occur on my index.aspx page, even though the
control
is used in exactly the same way (same parameters and properties) on
another
page in the same directory, and it does not give me an error there even
when
I view it multiple times. Why might this be happening, and what might I
be
able to do to fix it? Thanks.
 
C

Cor Ligthert

Nathan,

I think that the way you are doing it, is so special, that I can not give
you any help in this.

Sorry

Cor
 

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,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top