On Dec 30, 1:12 am, Milosz Skalecki [MCAD] <mily...@DONTLIKESPAMwp.pl>
wrote:
Hi Shapper,
HTML output should be rendered as <span id="yourId"
class="yourclass"></span>. In addition, there's no need for setting
ChildControlsCreated to true because EnsureChildControls method does it for
you.
I'm guessing something else is causing problem, paste all the code.
--
Milosz
"shapper" wrote:
Hello,
I created a custom control that inherits CompositeControl:
Public Class MySection
Inherits CompositeControl
...
Protected Overrides Sub CreateChildControls()
...
MyBase.CreateChildControls()
Me.ChildControlsCreated = True
End Sub
End Class MySection
When I use this control I define its ID and CssClass.
However, when I check the rendered output the ID and CssClass are not
defined.
What am I doing wrong?
Shoudn't this be working, since I am inheriting my control from
CompositeControl?
Thanks,
Miguel
Hi,
I think I found the problem. In my custom control I also have the
following:
Public Overloads Overrides Sub RenderBeginTag(ByVal writer As
HtmlTextWriter)
writer.RenderBeginTag(HtmlTextWriterTag.Div)
End Sub ' RenderBeginTag
Public Overloads Overrides Sub RenderEndTag(ByVal writer As
HtmlTextWriter)
writer.RenderEndTag()
End Sub ' RenderEndTag
I changed it to:
Public Overloads Overrides Sub RenderBeginTag(ByVal writer As
HtmlTextWriter)
With writer
If Me.ID <Nothing
Then .AddAttribute(HtmlTextWriterAttribute.Id, Me.ID)
If Me.CssClass <Nothing
Then .AddAttribute(HtmlTextWriterAttribute.Class, Me.CssClass)
End With
With writer
If Me.Width <Nothing
Then .AddAttribute(HtmlTextWriterAttribute.Style, "width: " &
Me.Width.ToString)
End With
' Render begin tag
writer.RenderBeginTag(HtmlTextWriterTag.Div)
End Sub ' RenderBeginTag
Now it is working.
Am I doing this right? Do I really need to do this?
Thanks,
Miguel