Problema su un controllo da usare

domenica 29 aprile 2007 - 20.27

Bohemian_Rhapsody Profilo | Newbie

Salve a tutti.
In un campo del database vado a salvare i dati inseriti in un texteditor (controllo ereditato da dotnetnuke) . Nel database il contenuto del campo (tipo String) è così strutturato:

"<OL> <LI><FONT style="BACKGROUND-COLOR: #ffc0cb" color=#deb887>Patate</FONT></LI> <LI><FONT style="BACKGROUND-COLOR: #ffc0cb" color=#deb887>zucchine</FONT></LI> <LI><FONT style="BACKGROUND-COLOR: #ffc0cb" color=#deb887>carciofi</FONT></LI></OL>".

Dovrei visualizzare questa stringa sul portale, in modo tale che venga "interpretata in HTML". Ho provato ad usare questo controllo:

"<asp:label id="Descrizione" runat="server" text='<%# DataBinder.Eval(Container.DataItem,"Descrizione") %>'></asp:label></td>"

ma mi viene visualizzata sempre la stringa di cui sopra.
Come posso fare?

freeteo Profilo | Guru

ciao,
prova a mettere direttamente il conenuto nel flusso della pagina:

<td><%# Eval("descrizione") %></td>

cosi' viene renderizzato cosi' come viene letto, senza fare encoding in ampersand della parentesi acute...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Bohemian_Rhapsody Profilo | Newbie

Ho provato con la soluzione che mi hai proposto ma non va. Ci sono altre soluzioni?

Wamba Profilo | Expert

Ho fatto un piccolo test.
Mi sono dichiarato come contenitore dell'html da inserire un div (ma puoi usare anche un tag p o span) ho assegnato un Id ("mioDiv") e impostato l'immancabile tag Runat="server".
a questo punto in un qualunque evento server prima del render (Load o init ad esempio) puoi fare:
mioDiv.InnerHtml = "<input type=\"button\" id=\"pippolo\" value=\"Ciao\" >"; (C#)
mioDiv.InnerHtml = "<input type=""button"" id=""pippolo"" value=""Ciao"" >" (VB)
Spero che ti possa essere utile.
Wamba
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba

Bohemian_Rhapsody Profilo | Newbie

Non capisco cosa vuoi dire.
Il codice nella mia pagina Agenda.ascx è questo:

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.UI.WebControls" Assembly="DotNetNuke.WebControls" %>
<asp:datalist id="lstAgenda" runat="server" Summary="Agenda Design Table" CssClass="Agenda DesignTable" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" >
<ItemTemplate>
<table cellpadding="2" cellspacing="0" border="0" summary="Agenda Design Table" >
<tr>
<td>
<asp:HyperLink id="EditAgenda" NavigateUrl='<%# EditURL("Indice",DataBinder.Eval(Container.DataItem,"Indice"),"EditAgenda") %>' Visible="<%# IsEditable %>" runat="server"><asp:image id="editAziendaImage" imageurl="~/images/edit.gif" visible="<%# IsEditable %>" alternatetext="EditAgenda" runat="server" resourcekey="EditAgenda"/>
</asp:HyperLink>
<asp:Label ID="Promemoria" Runat="server" CssClass="Normal" text='<%# DataBinder.Eval(Container.DataItem,"Promemoria") %>'></asp:Label>
<asp:Label ID="DataRelativa" Runat="server" CssClass="Normal" text='<%# DataBinder.Eval(Container.DataItem,"DataRelativa") %>'></asp:Label></td>
</tr>
<tr>
<td><asp:Label ID="Descrizione" Runat="server" CssClass="Normal" text='<%# DataBinder.Eval(Container.DataItem,"Descrizione") %>'></asp:Label></td>
</tr>
</table>
</ItemTemplate>
<FooterStyle BackColor="Tan" />
<SelectedItemStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<AlternatingItemStyle BackColor="PaleGoldenrod" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
</asp:datalist>


Mentre il file associato Agenda.ascx.vb è questo:

Namespace YourCompany.Modules.MarkCa

Partial Class Agenda
Inherits Entities.Modules.PortalModuleBase
Implements Entities.Modules.IActionable



#Region "Event Handlers"

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try

Dim objAgendas As New AgendaController
lstAgenda.Visible = True

' bind data
lstAgenda.DataSource = objAgendas.GetPromemorias(ModuleId)
lstAgenda.DataBind()

Catch exc As Exception
ProcessModuleLoadException(Me, exc)
End Try
End Sub


Private Sub lstAgenda_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles lstAgenda.ItemDataBound
Try
If e.Item.ItemType = ListItemType.Header Then
e.Item.FindControl("Promemoria")
e.Item.FindControl("DataRelativa")
e.Item.FindControl("Descrizione")


End If
Catch exc As Exception
ProcessModuleLoadException(Me, exc)
End Try

End Sub

#End Region

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5