webForumDet fria alternativet

Problem med linkbutton

7 svar · 799 visningar · startad av saw

sawMedlem sedan mars 20011 883 inlägg
#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

SilvioFMedlem sedan juni 2000585 inlägg
#2

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

sawMedlem sedan mars 20011 883 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.

Fredde MannenMedlem sedan nov. 20013 498 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>
sawMedlem sedan mars 20011 883 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.

onkelborgMedlem sedan juli 2003582 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.

sawMedlem sedan mars 20011 883 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.

onkelborgMedlem sedan juli 2003582 inlägg
#8

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

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb