webForumDet fria alternativet

Problem med linkbutton

.NET

7 svar · 801 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

När jag gör så här:

<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl='Aktivitet/Aktivitet.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id") %>' >Läs mera...</asp:LinkButton>

.. då får jag inget id med mig, det verkar som den inte ville köras.

Gör jag så här..

<a  href='Aktivitet/Aktivitet.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id") %>'> Läs mera...</a>

.. då fungerar id, men eftersom Aktivitet.aspx ligger ett snäpp upp ifrån roten,
så får jag problem.
Länken liger i en repiter, som visar olika händelse hela tiden och därför så
ändras avståndet till roten hela tiden.
Hur kan jag lösa detta? :q

Medlem sedan juni 2000547 inlägg
#2

Får du något felmeddelande eller är querystring("id") tom?

Medlem sedan mars 20011 880 inlägg
#3

Nej querystringen är tom och den ser ut så här:

http://localhost:53139/ccc/Aktivitet/Aktivitet.aspx?id=<%# DataBinder.Eval(Container.DataItem,\"id\") %>

Visst jag kan ju göra ett "fattigmans jobb" och lägga Aktivitet.aspx i roten och använda
en vanlig länk, men då förlorar jag strukturen på websiten, och det tycker jag är
viktigt att behålla.

Medlem sedan nov. 20014 054 inlägg
#4

Ett alternativ är att du använder oncommand event för din linkbutton:

<asp:LinkButton ID="btn" runat="server" OnCommand="btn_Command" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"id") %>'>Läs mera...</asp:LinkButton>

Och från codebehind gör en response.redirect till den tilltänkta sidan.

Ett annat är att du, och snyggare samt SEO-vänligare:

<asp:HyperLink runat="server" NavigateUrl='<%# "Aktivitet/Aktivitet.aspx?id=" & DataBinder.Eval(Container.DataItem,"id") %>' Text="Läs mera..."></asp:HyperLink>
Medlem sedan mars 20011 880 inlägg
#5

Nu blev jag förb.. på mig själv, som jag har kollat och letet och så var det så enkelt.
Tack alla ni för hjälpen.

Medlem sedan juli 2003555 inlägg
#6

Annars så lägger du till ~/ innan Aktiviteter i url:en, ~ är special i asp.net och ser till att du alltid får en sökväg som pekar på rooten på applikationen. Väldigt praktiskt.

Medlem sedan mars 20011 880 inlägg
#7

Hej onkelberg.
Det var mitt första försök, men det lyckades inte.
Om jag inte hadde med runat="server" så fick jag en crach, hadde jag den med så letade den efter en mapp (~/) som såg så ut.
Men nu fungerar det.

Medlem sedan juli 2003555 inlägg
#8

Hm, vad mystiskt. Finns en till variant, databind till ett funktionsanrop istället:
<%# Response.ApplyAppPathModifier("~/kaka/" + objekt.värde) %>

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)