Connecting Tech Pros Worldwide Help | Site Map

A composite control

James T.
Guest
 
Posts: n/a
#1: Nov 19 '05
Hello!

I developed a composite control that inherits from HyperLink and overrides
Render method.

In web form I am using this control with DataGrid. On DataGrid ItemDataBound
event I set ImageWidth and ImageHeight values programmatically. But on
post-back the control loses ImageWidth and ImageHeight values.

What I am doing wrong?

Thank you!
James


CODE:
-----------------------

Protected Overrides Sub Render(ByVal Output As System.Web.UI.HtmlTextWriter)

Output.AddAttribute(HtmlTextWriterAttribute.Href, Me.NavigateUrl)
Output.RenderBeginTag(HtmlTextWriterTag.A)

If ImageUrl.Length = 0 Then
Output.Write([Text])
Else

Output.AddAttribute(HtmlTextWriterAttribute.Src, ImageUrl)
Output.AddAttribute(HtmlTextWriterAttribute.Alt, [Text])
Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)

If Not (ImageHeight Is Nothing) Then
Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
End If

If Not (ImageWidth Is Nothing) Then
Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)
End If

Output.RenderBeginTag(HtmlTextWriterTag.Img)
Output.RenderEndTag()

End If
Output.RenderEndTag()

End Sub


Yunus Emre ALPÖZEN [MCAD.NET]
Guest
 
Posts: n/a
#2: Nov 19 '05

re: A composite control


you should save your values in a viewstate or a inline property... It loses
its state..

--

Thanks,
Yunus Emre ALPÖZEN
BSc, MCAD.NET

"James T." <gimenei@hotmail.com> wrote in message
news:eXOwwA%23WFHA.3348@TK2MSFTNGP14.phx.gbl...[color=blue]
> Hello!
>
> I developed a composite control that inherits from HyperLink and overrides
> Render method.
>
> In web form I am using this control with DataGrid. On DataGrid
> ItemDataBound event I set ImageWidth and ImageHeight values
> programmatically. But on post-back the control loses ImageWidth and
> ImageHeight values.
>
> What I am doing wrong?
>
> Thank you!
> James
>
>
> CODE:
> -----------------------
>
> Protected Overrides Sub Render(ByVal Output As
> System.Web.UI.HtmlTextWriter)
>
> Output.AddAttribute(HtmlTextWriterAttribute.Href, Me.NavigateUrl)
> Output.RenderBeginTag(HtmlTextWriterTag.A)
>
> If ImageUrl.Length = 0 Then
> Output.Write([Text])
> Else
>
> Output.AddAttribute(HtmlTextWriterAttribute.Src, ImageUrl)
> Output.AddAttribute(HtmlTextWriterAttribute.Alt, [Text])
> Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
> Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)
>
> If Not (ImageHeight Is Nothing) Then
> Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
> End If
>
> If Not (ImageWidth Is Nothing) Then
> Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)
> End If
>
> Output.RenderBeginTag(HtmlTextWriterTag.Img)
> Output.RenderEndTag()
>
> End If
> Output.RenderEndTag()
>
> End Sub
>[/color]


Steve C. Orr [MVP, MCSD]
Guest
 
Posts: n/a
#3: Nov 19 '05

re: A composite control


You should probably be storing those values in ViewState between postbacks.
Here's an example of a custom control that uses ViewState to store similar
custom values and retrieve them again when needed.
http://SteveOrr.net/articles/InheritAndExtend.aspx

--
I hope this helps,
Steve C. Orr, MCSD, MVP
http://SteveOrr.net


"James T." <gimenei@hotmail.com> wrote in message
news:eXOwwA%23WFHA.3348@TK2MSFTNGP14.phx.gbl...[color=blue]
> Hello!
>
> I developed a composite control that inherits from HyperLink and overrides
> Render method.
>
> In web form I am using this control with DataGrid. On DataGrid
> ItemDataBound event I set ImageWidth and ImageHeight values
> programmatically. But on post-back the control loses ImageWidth and
> ImageHeight values.
>
> What I am doing wrong?
>
> Thank you!
> James
>
>
> CODE:
> -----------------------
>
> Protected Overrides Sub Render(ByVal Output As
> System.Web.UI.HtmlTextWriter)
>
> Output.AddAttribute(HtmlTextWriterAttribute.Href, Me.NavigateUrl)
> Output.RenderBeginTag(HtmlTextWriterTag.A)
>
> If ImageUrl.Length = 0 Then
> Output.Write([Text])
> Else
>
> Output.AddAttribute(HtmlTextWriterAttribute.Src, ImageUrl)
> Output.AddAttribute(HtmlTextWriterAttribute.Alt, [Text])
> Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
> Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)
>
> If Not (ImageHeight Is Nothing) Then
> Output.AddAttribute(HtmlTextWriterAttribute.Height , ImageHeight)
> End If
>
> If Not (ImageWidth Is Nothing) Then
> Output.AddAttribute(HtmlTextWriterAttribute.Width, ImageWidth)
> End If
>
> Output.RenderBeginTag(HtmlTextWriterTag.Img)
> Output.RenderEndTag()
>
> End If
> Output.RenderEndTag()
>
> End Sub
>[/color]


Closed Thread