imgurl.Replace("~", "") - only the server can translate and process the ~
Here's the smallest working exaple of a control that I have. This is the very basics of a control that works, and a model to base your future contols off of.
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
<DefaultProperty("Text"), ToolboxData("<{0}:Display_EmbeddedHeader runat=server></{0}:Display_EmbeddedHeader>")> _
Public Class Display_EmbeddedHeader
Inherits WebControl
Private Panel As Panel
Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
If Not Me.Context Is Nothing Then
RenderContents(writer)
Else
RenderDesignMode(writer)
End If
End Sub
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
Controls.Clear()
Dim cs As ClientScriptManager = Me.Page.ClientScript
Dim rsType As Type = Me.GetType()
Dim Comment As LiteralControl
Comment = New LiteralControl
Comment.Text = "<!-- Internet Commerce Engine 5 Display_EmbeddedHeader Control V1.4.2 for ASP.NET -->" & vbCrLf
Controls.Add(Comment)
Panel = New Panel
With Panel
.ID = [ID] & "_EmbeddedHeader"
.Width = 960
.Style.Add(HtmlTextWriterStyle.Width, "960px")
.Style.Add(HtmlTextWriterStyle.TextAlign, "center")
.Style.Add(HtmlTextWriterStyle.Margin, "0px auto")
End With
Controls.Add(Panel)
Dim table_Header As Table
table_Header = New Table
With table_Header
.CellPadding = 0
.CellSpacing = 0
.Width = 960
.Height = 65
.Style.Add(HtmlTextWriterStyle.Width, "960px")
.Style.Add(HtmlTextWriterStyle.Width, "65px")
End With
Panel.Controls.Add(table_Header)
Dim tr_Header As TableRow
tr_Header = New TableRow
With tr_Header
End With
table_Header.Controls.Add(tr_Header)
Dim td_Header As TableCell
td_Header = New TableCell
With td_Header
'.CssClass = "DefaultHeader"
.Width = [Width]
.Height = 65
.Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
.Style.Add(HtmlTextWriterStyle.Height, "65px")
.VerticalAlign = VerticalAlign.Middle
End With
tr_Header.Controls.Add(td_Header)
Dim img_header As Image
img_header = New Image
With img_header
.ImageAlign = ImageAlign.AbsMiddle
.ImageUrl = cs.GetWebResourceUrl(rsType, "Admin_Standard.Header-TestDrive-Right.gif")
End With
td_Header.Controls.Add(img_header)
End Sub
Private Sub RenderDesignMode(ByVal writer As HtmlTextWriter)
Controls.Clear()
Dim cs As ClientScriptManager = Me.Page.ClientScript
Dim rsType As Type = Me.GetType()
Dim Comment As LiteralControl
Comment = New LiteralControl
Comment.Text = "<!-- Internet Commerce Engine 5 Display_EmbeddedHeader Control V1.4.2 for ASP.NET -->" & vbCrLf
Controls.Add(Comment)
Panel = New Panel
With Panel
.ID = [ID] & "_EmbeddedHeader"
.Width = 960
.Style.Add(HtmlTextWriterStyle.Width, "960px")
.Style.Add(HtmlTextWriterStyle.TextAlign, "center")
.Style.Add(HtmlTextWriterStyle.Margin, "0px auto")
End With
Controls.Add(Panel)
Dim table_Header As Table
table_Header = New Table
With table_Header
.CellPadding = 0
.CellSpacing = 0
.Width = 960
.Height = 65
.Style.Add(HtmlTextWriterStyle.Width, "960px")
.Style.Add(HtmlTextWriterStyle.Width, "65px")
End With
Panel.Controls.Add(table_Header)
Dim tr_Header As TableRow
tr_Header = New TableRow
With tr_Header
End With
table_Header.Controls.Add(tr_Header)
Dim td_Header As TableCell
td_Header = New TableCell
With td_Header
'.CssClass = "DefaultHeader"
.Width = [Width]
.Height = 65
.Style.Add(HtmlTextWriterStyle.Width, [Width].ToString)
.Style.Add(HtmlTextWriterStyle.Height, "65px")
.VerticalAlign = VerticalAlign.Middle
End With
tr_Header.Controls.Add(td_Header)
Dim img_header As Image
img_header = New Image
With img_header
.ImageAlign = ImageAlign.AbsMiddle
.ImageUrl = cs.GetWebResourceUrl(rsType, "Admin_Standard.Header-TestDrive-Right.gif")
End With
td_Header.Controls.Add(img_header)
Panel.RenderControl(writer)
End Sub
<Bindable(True)> _
<Category("Appearance")> _
<DefaultValue("")> _
<Localizable(True)> Property CssStyle_Text() As String
Get
Dim s As String = CStr(ViewState("CssStyle_Text"))
If s Is Nothing Then
Return String.Empty
Else
Return s
End If
End Get
Set(ByVal Value As String)
ViewState("CssStyle_Text") = Value
End Set
End Property
End Class
jkirkerx
Contributor
3750 Points
873 Posts
Re: How to Display the image you'll be on my my WebControl Class Designer Embedded Resource using...
Jan 22, 2011 04:32 AM|LINK
imgurl.Replace("~", "") - only the server can translate and process the ~
Here's the smallest working exaple of a control that I have. This is the very basics of a control that works, and a model to base your future contols off of.
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Text Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls <DefaultProperty("Text"), ToolboxData("<{0}:Display_EmbeddedHeader runat=server></{0}:Display_EmbeddedHeader>")> _ Public Class Display_EmbeddedHeader Inherits WebControl Private Panel As Panel Protected Overrides Sub Render(ByVal writer As HtmlTextWriter) If Not Me.Context Is Nothing Then RenderContents(writer) Else RenderDesignMode(writer) End If End Sub Protected Overrides Sub OnInit(ByVal e As System.EventArgs) MyBase.OnInit(e) Controls.Clear() Dim cs As ClientScriptManager = Me.Page.ClientScript Dim rsType As Type = Me.GetType() Dim Comment As LiteralControl Comment = New LiteralControl Comment.Text = "<!-- Internet Commerce Engine 5 Display_EmbeddedHeader Control V1.4.2 for ASP.NET -->" & vbCrLf Controls.Add(Comment) Panel = New Panel With Panel .ID = [ID] & "_EmbeddedHeader" .Width = 960 .Style.Add(HtmlTextWriterStyle.Width, "960px") .Style.Add(HtmlTextWriterStyle.TextAlign, "center") .Style.Add(HtmlTextWriterStyle.Margin, "0px auto") End With Controls.Add(Panel) Dim table_Header As Table table_Header = New Table With table_Header .CellPadding = 0 .CellSpacing = 0 .Width = 960 .Height = 65 .Style.Add(HtmlTextWriterStyle.Width, "960px") .Style.Add(HtmlTextWriterStyle.Width, "65px") End With Panel.Controls.Add(table_Header) Dim tr_Header As TableRow tr_Header = New TableRow With tr_Header End With table_Header.Controls.Add(tr_Header) Dim td_Header As TableCell td_Header = New TableCell With td_Header '.CssClass = "DefaultHeader" .Width = [Width] .Height = 65 .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString) .Style.Add(HtmlTextWriterStyle.Height, "65px") .VerticalAlign = VerticalAlign.Middle End With tr_Header.Controls.Add(td_Header) Dim img_header As Image img_header = New Image With img_header .ImageAlign = ImageAlign.AbsMiddle .ImageUrl = cs.GetWebResourceUrl(rsType, "Admin_Standard.Header-TestDrive-Right.gif") End With td_Header.Controls.Add(img_header) End Sub Private Sub RenderDesignMode(ByVal writer As HtmlTextWriter) Controls.Clear() Dim cs As ClientScriptManager = Me.Page.ClientScript Dim rsType As Type = Me.GetType() Dim Comment As LiteralControl Comment = New LiteralControl Comment.Text = "<!-- Internet Commerce Engine 5 Display_EmbeddedHeader Control V1.4.2 for ASP.NET -->" & vbCrLf Controls.Add(Comment) Panel = New Panel With Panel .ID = [ID] & "_EmbeddedHeader" .Width = 960 .Style.Add(HtmlTextWriterStyle.Width, "960px") .Style.Add(HtmlTextWriterStyle.TextAlign, "center") .Style.Add(HtmlTextWriterStyle.Margin, "0px auto") End With Controls.Add(Panel) Dim table_Header As Table table_Header = New Table With table_Header .CellPadding = 0 .CellSpacing = 0 .Width = 960 .Height = 65 .Style.Add(HtmlTextWriterStyle.Width, "960px") .Style.Add(HtmlTextWriterStyle.Width, "65px") End With Panel.Controls.Add(table_Header) Dim tr_Header As TableRow tr_Header = New TableRow With tr_Header End With table_Header.Controls.Add(tr_Header) Dim td_Header As TableCell td_Header = New TableCell With td_Header '.CssClass = "DefaultHeader" .Width = [Width] .Height = 65 .Style.Add(HtmlTextWriterStyle.Width, [Width].ToString) .Style.Add(HtmlTextWriterStyle.Height, "65px") .VerticalAlign = VerticalAlign.Middle End With tr_Header.Controls.Add(td_Header) Dim img_header As Image img_header = New Image With img_header .ImageAlign = ImageAlign.AbsMiddle .ImageUrl = cs.GetWebResourceUrl(rsType, "Admin_Standard.Header-TestDrive-Right.gif") End With td_Header.Controls.Add(img_header) Panel.RenderControl(writer) End Sub <Bindable(True)> _ <Category("Appearance")> _ <DefaultValue("")> _ <Localizable(True)> Property CssStyle_Text() As String Get Dim s As String = CStr(ViewState("CssStyle_Text")) If s Is Nothing Then Return String.Empty Else Return s End If End Get Set(ByVal Value As String) ViewState("CssStyle_Text") = Value End Set End Property End Class