Parse Error...

.NET

7 svar · 337 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Trådstart#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.

272 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)