Avatar billede stinejh1980 Nybegynder
16. december 2009 - 12:13 Der er 4 kommentarer og
1 løsning

Vis formatteret text i datagrid

Jeg viser data fra en SQL database i et datagrid.
Det ene felt i db er fyldt med HTML formatteret text.
<p> Dette <b>KUNNE</b> være et eksempel</p>

På nuværende tidspunkt fyldet jeg kolonnen på denne måde:
<asp:Label ID="LblEssayText" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.EssayText") %>' ></asp:Label>

Hvordan får jeg vist teksten i formatteret version?
Hvordan forkorter jeg strengen så den ikke viser hele teksen, men bare en teaser? (Eks: første 200 karakterer & ...)
Avatar billede jimmydk Nybegynder
22. december 2009 - 12:20 #1
for at forkorte teksten

              <asp:Label ID="LblEssayText" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Titel").ToString().Substring(0,200) %>' ></asp:Label>

hvis du fjerne <p></p> og skifter <b></b> ud med <strong></strong>

får du den fede tekst
Avatar billede madand Nybegynder
23. december 2009 - 09:04 #2
Yes substring.
og hvis du eksempelvis har en tekst, som hedder "Hej med dig og nu stopper min tekst" og du vil undgå at du forkorter teksten med "Hej med dig o" altså inde i et ord.

Så kan du gøre flg.
        var EssayText = "Hej med dig her er en tekst som vi skal substringe helt vildt...";

        if(EssayText.Length > 200)
        Response.Write(EssayText.Substring(0, EssayText.LastIndexOf(' ', 200)));
Avatar billede stinejh1980 Nybegynder
04. januar 2010 - 08:09 #3
jimmydk>>>
Jeg bestemmer ikke selv hvad der står i cellen i min DB, det gør min HTML editor (FCKeditor). Derfor kan jeg ikke bare lige fjerne <p></p> og skifte <b></b> ud med <strong></strong>

madand>> Den kunne jeg også godt have klaret. Mit problem er at teksten skal vises i et datagrid.
Avatar billede stinejh1980 Nybegynder
15. januar 2010 - 08:50 #4
Så fandt jeg ud af det, med venners og uendelig timers søgning på nettet.
Til andre der har brug for at vise HTML formatteret tekst fra en database i en celle i et datagrid:
(ASP.NET og VB.NET)

HTML:
<asp:TemplateColumn HeaderText="Essay Text">
<ItemTemplate>
<asp:Label ID="LblEssayText" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.EssayText") %>' Width="250" ></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>

Codebehind:
Under [datagridnavn]_ItemDataBound methoden skrives:
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
         
            Dim Essay As System.Web.UI.WebControls.Label
            Essay = CType(e.Item.FindControl("LblEssayText"), System.Web.UI.WebControls.Label)
            Dim tempString As String
            tempString = Essay.Text.ToString()
            tempString = Server.HtmlDecode(tempString)
            Essay.Text = tempString
        End If


Jimmydk og madand >>> smid et svar, jeg brugte jeres substring 200 et andet sted.
Avatar billede madand Nybegynder
15. januar 2010 - 10:06 #5
Det var rigtig godt du fandt en løsning :)
svar..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester