mottossonMedlem sedan mars 200339 inlägg
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
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
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
Testade
<%# server.htmlencode(container.dataitem("cust_fName")) %>
och det funkar fint.
GladhMedlem sedan maj 20013 024 inlägg
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
Tack för all hjälp!
Löste det på följande sätt:
<%# Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "text").ToString()) %>