webForumDet fria alternativet

Parse Error...

.NETur .NET

7 svar · 331 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#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()
Medlem 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>
Medlem 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>
Medlem sedan dec. 19996 721 inlägg
#4

Klart snyggare! (y)

Medlem 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("..")

Medlem 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!!

Medlem 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? :)

Medlem 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.

250 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
123 ms — hämta statistik (db)
124 ms — hämta tråd, inlägg och bilagor (db)