liljaMedlem sedan juli 20041 183 inlägg 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 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("..")
liljaMedlem sedan juli 20041 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!!
liljaMedlem sedan juli 20041 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? :)
emissionMedlem sedan dec. 19996 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.