webForumDet fria alternativet

Parse Error...

7 svar · 331 visningar · startad av lilja

liljaMedlem sedan juli 20041 183 inlägg
#1

Jag har

<asp:hyperlink id="HyperLink" runat="server" navigateurl=<%# Container.DataItem ("GEpost") %> Target="_blank">
	<%# Container.DataItem ("GEpost") %>
</asp:hyperlink>

Och vill lägga till mailto: framför texten som skrivs ut. Någon som vet hur man gör?

Jag skriver data till en repeater med

rptGuestbook.DataSource = Cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
		rptGuestbook.DataBind()
emissionMedlem sedan dec. 19996 721 inlägg
#2

Det här kanske fungerar, eftersom det är VB

<asp:hyperlink id="HyperLink" runat="server" navigateurl='<%# "mailto:" & Container.DataItem ("GEpost") %>' Target="_blank">
	<%# Container.DataItem ("GEpost") %>
</asp:hyperlink>

annars

<asp:hyperlink id="HyperLink" runat="server" navigateurl='<%# "mailto:" & DataBinder.Eval(Container.DataItem,"GEpost").ToString() %>' Target="_blank">
	<%# Container.DataItem ("GEpost") %>
</asp:hyperlink>
andreas_lindhMedlem sedan jan. 20011 140 inlägg
#3
<asp:hyperlink id="HyperLink" runat="server" navigateurl='<%# DataBinder.Eval(Container.DataItem,"GEpost","mailto:{0}") %>' text='<%# Container.DataItem ("GEpost") %>'>
</asp:hyperlink>
emissionMedlem sedan dec. 19996 721 inlägg
#4

Klart snyggare! (y)

sealstudioMedlem sedan aug. 200563 inlägg
#5

Vad är det "DataBinder.Eval" gör för något?
Förstår mig inte riktigt på den, använder alltid:
Container.DataItem("..")

liljaMedlem sedan juli 20041 183 inlägg
#6

Hmm, redigerar en textsträng i ett dataobjekt innan det skrivs ut??

Jag letade en massa på internet och hittade bara svar som DataBinder.Eval men trodde att det gick att göra som jag ville också, så jag testade aldrig "den korrekt lösningen" :(

Tack så mycket!!

liljaMedlem sedan juli 20041 183 inlägg
#7

http://weblogs.asp.net/rajbk/archive/2004/07/20/188868.aspx

Skumläst lite och det verkar som att DataBinder.Eval alltid returnerar en sträng medans Container.DataItem("..") inte gör det, är det korrekt? :)

emissionMedlem sedan dec. 19996 721 inlägg
#8

När man kör

DataBinder.Eval(objekt,fältnamn)

så letar Eval efter ett fält i objektet, baserat på fältnamn. Om objektet t.ex, är en DataRow, så kommer

DataBinder.Eval(Container.DataItem,"Email")

...att hitta

DataRaden("Email")

Men om objektet i stället är en klass med propertyn Email, så hittas

KlassInstansen.Email

DataBinder.Eval används alltså för att hämta värden ur Container.DataItem, utan att man behöver veta vilken typ av objekt det är.

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)