webForumDet fria alternativet

UpdatePanel

9 svar · 634 visningar · startad av thevice

theviceMedlem sedan dec. 2005198 inlägg
#1

Hej!

Jag har nu sökt igenom hela internet skulle jag tro men jag hittar inget svar på min fråga:

Jag använder AJAXs UpdatePanel som en ful lösning istället för iframe, eller skulle vilja iaf. Jag har en masterpage, och alla sidor som använder sig utav masterpage har en updatepanel.
Går det att använda HyperLink i en UpdadePanel så man kommer till en annan sida utan att masterpage uppdatras?

Kanske lite svår förklarat men jag tror ni förstår hur jag menar.

Tacksam för svar!
/ Timmie

theviceMedlem sedan dec. 2005198 inlägg
#2

Har en till fråga, är det någon som har en susning om AJAX Control Toolkit fungerar på webbhotellet web10.(.se)?

Edit, det fungerar.
/ Timmie

theviceMedlem sedan dec. 2005198 inlägg
#3

Nu bumpar jag, är det verkligen ingen som har någon koll på hur man kan andvända UpdatePanel?

emissionMedlem sedan dec. 19996 721 inlägg
#4

thevice skrev:

Går det att använda HyperLink i en UpdadePanel så man kommer till en annan sida utan att masterpage uppdatras?

Nej, en Hyperlink är en länk och det innebär att man hamnar på en annan sida. Rent teoretiskt skulle det gå att lösa med ett filter som gör om alla länkar till Javascript-anrop som triggar en servermetod, men det är inte att rekommendera.

theviceMedlem sedan dec. 2005198 inlägg
#5

tackar för svarat. Då lägger jag de tankarna bakom mig.

VideMedlem sedan dec. 19998 577 inlägg
#6

En ful lösning på detta är om du gör om dina sidor till usercontrols och includerar dessa dynamiskt via din UpdatePanel (vid serverclick på en linkbutton), men detta är ett rent fulhack... ;)

ordellMedlem sedan sep. 200278 inlägg
#7

En <asp:hyperlink /> fungerar inte, då den renderas som en ren <a href="" />. <asp:linkbutton /> går dock att använda, då den triggar ett serverevent vid click (mha Javascript).

Ett annat alternativ är att själv trigga en (partial)postback med Javascriptfunktionen

__doPostBack()

. Lägg ett hiddenfält någonstans på sidan och skicka med dess clientid som argument till funktionen så får du en postback. Om hiddenfältet inte ligger i den updatepanel som ska uppdateras kan man lägga på en trigger för updatepaneln för att få samma effekt...

theviceMedlem sedan dec. 2005198 inlägg
#8

Om jag skulle använda en linkbutton så skulle jag ju behöva göra en class för varje länk som sedan redirectade en till rätt plats eller?

Ordell berätta gärna mer om hur jag kan göra med andra alternativet, förstod inte riktigt.

/ TImmie

ordellMedlem sedan sep. 200278 inlägg
#9

Jag är inte riktigt med på vad du menar med att du måste göra en klass för varje linkbutton? Det du behöver göra är en handler som reagerar på ett event? Använder du oncommand så kan du ju skicka med ett argument i commandargument (eller commandname) som du sedan fångar upp i handler och använder för att avgöra vart du ska göra redirecten.

Det andra alternativet är egentligen bara för att tvinga en updatepanel till postback om man inte har en serverkontroll (runat=server) att reagera på. Vad som händer när du klickar på en knapp (eller väljer värde i en selectlist, osv) i en updatepanel är att det sker ett anrop till javascriptfunktionen __doPostBack(), och sedan hanteras resten av logiken av ramverket. Det innebär också att du själv kan tvinga en postback på en updatepanel genom att anropa funktionen själv. Ta en titt i den genererade HTML-koden på en sida så får du se :)

Begränsningen är dock att du måste ändra på ett värde i en kontroll som faktiskt ligger i updatepaneln (annars gör du full-page postback). Det kan man lösa genom att lägga ett <asp:hiddenfield /> i updatepaneln och sätta dess värde baserat på t ex. vilken knapp man klickar på. Sen anropar du __doPostBack(); med hiddenfältets clientId som argument... Blev det lite tydligare nu?

-- Kanske inte det snyggaste, men helt klart jäkla effektivt :)

theviceMedlem sedan dec. 2005198 inlägg
#10

Tackar! Nu förstod jag. :)
Men smart som jag är så använder jag en flash meny och då så sket sig allt i hoppa ändå. Det jag ville uppnå var att slippa att flashmenyn skulle uppdateras när man gick in på en länk. Då jag hatar att använda iframe så ville jag inte lösa det på det settet. Men men, tack för ditt svar ordell!

/ Timmie

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)