Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Custom Templated Control not rendering asp.net controls correctly

Reply
Thread Tools

Custom Templated Control not rendering asp.net controls correctly

 
 
news.microsoft.com
Guest
Posts: n/a
 
      04-08-2005
If I have an ASP.net button inside a template for a custom control and use
the code below, everything works fine and it generates the correct id and
the asp.net button calls serverside click event as it should:

_myTemplateContainer = New ContentContainer(Me)
ContentTemplate.InstantiateIn(_myTemplateContainer )
Controls.Add(_myTemplateContainer)

But if I use this code, it does not generate the unique ID and no serverside
event will be called:


Dim SB As New StringBuilder()
Dim SW As New StringWriter(SB)
Dim htmlTW As New HtmlTextWriter(SW)
_myTemplateContainer = New ContentContainer(Me)
ContentTemplate.InstantiateIn(_myTemplateContainer )
_myTemplateContainer.RenderControl(htmlTW)

If Not Me.Page.IsClientScriptBlockRegistered("MainWindow_ " & Me.ID) Then
Me.Page.RegisterClientScriptBlock("MainWindow_" & Me.ID, SB.ToString)
End If

The reason I was trying to do it this way is because I need the html of the
template and some other html table code to be output to the top of the html
page no matter where the actual custom control is sited and this was the
only way I could figure out how to do that.

Do you happen to know either of these answers:

1. Is there something else I need to do to get RenderControl to generate
proper ID's for asp.net control that exist on the template I am trying to
render or is that just not possible.
2. Is there another way I can make sure the output of the template always
appears at the top of the page html?


 
Reply With Quote
 
 
 
 
Teemu Keiski
Guest
Posts: n/a
 
      04-09-2005
Hi,

on the second code block, you don't add the template container to the
Controls collection, that's the key part in when Page generates IDs for
controls or when events are handled (for postback events, control would need
to be in Controls collection at Page_Load at the latest)

--
Teemu Keiski
ASP.NET MVP, AspInsider
Finland, EU

"news.microsoft.com" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> If I have an ASP.net button inside a template for a custom control and use
> the code below, everything works fine and it generates the correct id and
> the asp.net button calls serverside click event as it should:
>
> _myTemplateContainer = New ContentContainer(Me)
> ContentTemplate.InstantiateIn(_myTemplateContainer )
> Controls.Add(_myTemplateContainer)
>
> But if I use this code, it does not generate the unique ID and no
> serverside event will be called:
>
>
> Dim SB As New StringBuilder()
> Dim SW As New StringWriter(SB)
> Dim htmlTW As New HtmlTextWriter(SW)
> _myTemplateContainer = New ContentContainer(Me)
> ContentTemplate.InstantiateIn(_myTemplateContainer )
> _myTemplateContainer.RenderControl(htmlTW)
>
> If Not Me.Page.IsClientScriptBlockRegistered("MainWindow_ " & Me.ID) Then
> Me.Page.RegisterClientScriptBlock("MainWindow_" & Me.ID, SB.ToString)
> End If
>
> The reason I was trying to do it this way is because I need the html of
> the template and some other html table code to be output to the top of the
> html page no matter where the actual custom control is sited and this was
> the only way I could figure out how to do that.
>
> Do you happen to know either of these answers:
>
> 1. Is there something else I need to do to get RenderControl to generate
> proper ID's for asp.net control that exist on the template I am trying to
> render or is that just not possible.
> 2. Is there another way I can make sure the output of the template always
> appears at the top of the page html?
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Calendar Control not rendering correctly Robin9876 ASP .Net Web Controls 0 08-01-2007 03:36 PM
ASP.NET Templated User Controls - Limit child controls allowable within a templated control JohnyStyles@gmail.com ASP .Net 0 05-29-2006 06:00 PM
Templated control not rendering Web User Controls Allan Ebdrup ASP .Net Web Controls 4 03-30-2006 09:41 AM
Custom Templated Control not rendering asp.net controls correctly news.microsoft.com ASP .Net Building Controls 1 04-09-2005 11:41 AM
Custom Templated Control not rendering asp.net controls correctly news.microsoft.com ASP .Net Web Controls 1 04-09-2005 11:41 AM



Advertisments