lilja Medlem sedan juli 2004 1 183 inlägg Frågan 14 okt. 2005 13:00 #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()
E emission Medlem sedan dec. 1999 6 721 inlägg 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>
<asp:hyperlink id="HyperLink" runat="server" navigateurl='<%# DataBinder.Eval(Container.DataItem,"GEpost","mailto:{0}") %>' text='<%# Container.DataItem ("GEpost") %>'>
</asp:hyperlink>
Vad är det "DataBinder.Eval" gör för något?
Förstår mig inte riktigt på den, använder alltid:
Container.DataItem("..")
lilja Medlem sedan juli 2004 1 183 inlägg 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!!
lilja Medlem sedan juli 2004 1 183 inlägg 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? :)
E emission Medlem sedan dec. 1999 6 721 inlägg 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.