<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Immagine/i e Testo nel controllo HyperLink</title>
        <link>http://blogs.ugidotnet.org/soldano/category/3260.aspx</link>
        <description>Immagine/i e Testo nel controllo HyperLink</description>
        <language>it-IT</language>
        <copyright>Andrea SOLDANO</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <item>
            <title>Testo e immagini nel controllo HyperLink</title>
            <link>http://blogs.ugidotnet.org/soldano/archive/2007/04/28/testo-e-immagini-nel-controllo-hyperlink.aspx</link>
            <description>&lt;p&gt; Voglio aggiungere del testo e un'immagine nel controllo HyperLink del namespace System.Web.UI.WebControls .&lt;/p&gt;&lt;p&gt; All'apparenza sembra banale, ma si valorizzano entrambe le proprietà Text (la proprietà che contiene il testo del link) e ImageUrl (il path dell'immagine da caricare nel link), il controllo si disinteressa completamente della proprietà Text. Viene quindi caricata solo l'immagine. E se link è composto da un'immagine e da un testo? Si devono aggiungere due controlli HyperLink distinti, l'uno con il testo e l'altro con l'immagine?&lt;/p&gt;&lt;p&gt; Perchè? Come ovviare al problema?&lt;/p&gt;&lt;p&gt;Ho disassemblato il controllo. Qui sotto riporto la subroutine RenderContents; tanto per intenderci, il metodo che disegna il link nella pagina html: &lt;/p&gt;&lt;p&gt;Protected Friend Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)&lt;br /&gt;    Dim relativeUrl As String = Me.ImageUrl&lt;br /&gt;    If (relativeUrl.Length &amp;gt; 0) Then&lt;br /&gt;        Dim image As New Image&lt;br /&gt;        image.ImageUrl = MyBase.ResolveClientUrl(relativeUrl)&lt;br /&gt;        relativeUrl = Me.ToolTip&lt;br /&gt;        If (relativeUrl.Length &amp;lt;&amp;gt; 0) Then&lt;br /&gt;            image.ToolTip = relativeUrl&lt;br /&gt;        End If&lt;br /&gt;        relativeUrl = Me.Text&lt;br /&gt;        If (relativeUrl.Length &amp;lt;&amp;gt; 0) Then&lt;br /&gt;            image.AlternateText = relativeUrl&lt;br /&gt;        End If&lt;br /&gt;        image.RenderControl(writer)&lt;br /&gt;    ElseIf MyBase.HasRenderingData Then&lt;br /&gt;        MyBase.RenderContents(writer)&lt;br /&gt;    Else&lt;br /&gt;        writer.Write(Me.Text)&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;/p&gt;&lt;p&gt;Come si può vedere, non appena si valorizza la proprietà ImageUrl, il controllo disegna solamente l'immagine, e il testo finisce nell'AlternateText.&lt;/p&gt;&lt;p&gt;Se popoliamo la proprietà Text, ma senza traccia dell'immagine, il controllo renderizza correttamente il testo.&lt;/p&gt;&lt;p&gt;Esiste una terza alternativa, quella che serve. Si possono aggiungere i controlli dinamicamente nella collezione Controls dell'Hyperlink, i quali verranno renderizzati nell'ordine d'inserimento.&lt;/p&gt;&lt;p&gt;Ecco un esempio:&lt;/p&gt;&lt;p&gt;           Dim hy As New HyperLink()&lt;/p&gt;&lt;p&gt; 'Impostiamo delle proprietà di stile &lt;/p&gt;&lt;p&gt;            hy.ForeColor = Drawing.Color.Black&lt;br /&gt;            hy.Font.Bold = False&lt;br /&gt;            hy.Style("font-weight") = "normal"&lt;br /&gt;            hy.Font.Size = FontUnit.Point(8)&lt;/p&gt;&lt;p&gt;'Imposto il testo del tooltip&lt;br /&gt;            hy.ToolTip = "Il mio link con immagine"&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 'Creo l'immagine &lt;/p&gt;&lt;p&gt;            Dim IMG As New WebControls.Image&lt;br /&gt;            IMG.ImageUrl = imgPath&lt;br /&gt;            hy.Controls.Add(IMG)&lt;/p&gt;&lt;p&gt;'Scrivo il testo&lt;br /&gt;            Dim txt As New Label&lt;br /&gt;            txt.Text = "Il testo del mio link con immagine"&lt;br /&gt;            hy.Controls.Add(txt)&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/soldano/aggbug/91601.aspx" width="1" height="1" /&gt;</description>
            <guid>http://blogs.ugidotnet.org/soldano/archive/2007/04/28/testo-e-immagini-nel-controllo-hyperlink.aspx</guid>
            <pubDate>Sat, 28 Apr 2007 11:04:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/soldano/comments/91601.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/soldano/archive/2007/04/28/testo-e-immagini-nel-controllo-hyperlink.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/soldano/comments/commentRss/91601.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/soldano/services/trackbacks/91601.aspx</trackback:ping>
        </item>
    </channel>
</rss>
