webForumDet fria alternativet

Server.HtmlEncode i en Repeater!

5 svar · 485 visningar · startad av mottosson

mottossonMedlem sedan mars 200339 inlägg
#1

Jag använder en repeater för att presentera gästboksinlägg och där får det inte skrivas ut html-kod så dom kan lägga in länkar eller göra nått sattyg.
Jag vill använda mig av Server.HtmlEncode för detta men jag vet inte hur jag ska lägga in den i koden i repeatern...

Såhär ser det ut nu:
<%# DataBinder.Eval(Container.DataItem, "text") %>

Men jag vill att det ska se ut nått sånt här:
<%# Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "text")) %>

Men som ni själva förstår så funkar inte detta!

andreas_lindhMedlem sedan jan. 20011 091 inlägg
#2

Gör en funktion som fixar det

public function html(inlagg as string)
return server.htmlencode(inlagg)
end function

Och där du skriver ut det

<%# html(DataBinder.Eval(Container.DataItem, "text")) %>
mottossonMedlem sedan mars 200339 inlägg
#3

Det blir samma fel som om jag skulle skrivit server.htmlencode istället för att göra en egen funktion!

The best overloaded method match for 'ASP.guestbook_aspx.ToHtml(string)' has some invalid arguments.

DinoMedlem sedan sep. 20011 918 inlägg
#4

Testade

<%# server.htmlencode(container.dataitem("cust_fName")) %>

och det funkar fint.

GladhMedlem sedan maj 20013 024 inlägg
#5

Jag brukar använda mig av eventet OnDataItemBound, dels för att slippa ASP kod i min aspx sida och dels för att komma från Databinder.eval() som är rätt långsam.

OnDataItemBound lägger man i sin codebehindclass och där i kan du utan problem kör server.htmlencode() på dina värden.

Det fungerar att göra som du gör, men är "snyggare" att lägga det i eventet, samt att man separera sin HTML-kod och ASP-kod mer

- M

mottossonMedlem sedan mars 200339 inlägg
#6

Tack för all hjälp!

Löste det på följande sätt:

<%# Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "text").ToString()) %>

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb