Surcharge du controle hyperlink pour lui faire afficher une image et du texte...

Contenu du snippet

le titre devrait se suffire à lui-même ;-)
le controle présenté, permet de faire afficher une image avec du texte dans un lien. En effet, le controle HyperLink ne le fait pas.

Source / Exemple :


Imports System.Web.UI.WebControls

Namespace skyControls
	'permet de faire un lien qui contient une image et du texte....
	'les 4 propriétés servent au rendu de l'image:
	'isrc = l'url du fichier image
	'iheight = hauteur en pixel de l'image
	'iwidth = largeur en pixel de l'image
	'ImgBefore = si true ou non renseigné, permet de spécifier que l'image sera placée avant le texte, si False, l'image sera placée après le texte
	'comme le contrôle hérite de HyperLink, les propriétés standards sont accessibles.
	'n'oubliez pas de renseigner la propriété NavigateUrl afin d'avoir le lien ;-)

	Public Class textimglink
		Inherits HyperLink

		Public _isrc As String = String.Empty
		Public _iheight As String = String.Empty
		Public _iwidth As String = String.Empty
		Public _ImgBefore As Boolean = True

		Public Property isrc() As String
			Get
				isrc = _isrc
			End Get
			Set(ByVal Value As String)
				_isrc = Value
			End Set
		End Property
		Public Property iheight() As String
			Get
				iheight = _iheight
			End Get
			Set(ByVal Value As String)
				_iheight = Value
			End Set
		End Property
		Public Property iwidth() As String
			Get
				iwidth = _iwidth
			End Get
			Set(ByVal Value As String)
				_iwidth = Value
			End Set
		End Property
		Public Property ImgBefore() As Boolean
			Get
				ImgBefore = _ImgBefore

			End Get
			Set(ByVal Value As Boolean)
				_ImgBefore = Value
			End Set
		End Property

		Protected Overrides Sub RenderContents(ByVal writer As System.Web.UI.HtmlTextWriter)
			Dim myimg As System.Web.UI.WebControls.Image
			myimg = New System.Web.UI.WebControls.Image()

			myimg.Attributes.Add("border", 0)
			myimg.Attributes.Add("height", iheight)
			myimg.Attributes.Add("width", iwidth)
			myimg.ImageUrl = Me.isrc

			If ImgBefore = True Then
				myimg.RenderControl(writer)
				writer.Write(Me.Text)
			Else
				writer.Write(Me.Text)
				myimg.RenderControl(writer)

			End If

		End Sub

	End Class

End Namespace

Conclusion :


merci de me prévenir si vous améliorez, ou trouvez une erreur dans ce code.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.