Hej Anders, Tyvärr fungerar det inte längre, när show ligger i ett annat namespace får jag felet "Specified cast is not valid." Anders, När jag kör Anders, komma åt parent aspx sida
Jag har ett antal .aspx sidor som innehåller publika variabler och funktioner samt att de laddar in usercontrols.
Från usercontrolsen anropar jag dessa publika variabler och funktioner. Tidigare när jag enbart hade en aspx sida var det inga problem, då anropade jag parent såhär:
show parent = (show)this.Page;
parent.variabel ...
Nu har jag istället flera aspx sidor som heter show, men ligger i olika namespace, alltså:
projekt.del1
projekt.del2
osv
Några tips på hur jag löser detta?
mvh
AndersSv: komma åt parent aspx sida
Det borde inte vara några problem nu heller även om du har olika namespace.
Dock kanske du istället skall se över att han en annanlösning. Ev att du istället skickar in dessa
variabler in i din usercontrol istället för att be dem hämta dessa. Är det varaiabler som all ausercontrols delar? om inte så kan du lika gärna sätta dem i usercontrollerna själva.
Mvh JohanSv:komma åt parent aspx sida
Anledningen att jag gör såhär är att jag även uppdaterar variablerna samt att jag fyller en placeholder med data från mina usercontrols. Sv: komma åt parent aspx sida
hum... ok. Hade nog valt annan lösning för detta. Men allt handlar ju om krav... Så...
Testa att se vilken typ din parent har. this.Parent.GetType().ToString() eller kör debug för att se detta, då kan du lättare se vad din parent pekar på.
För det spelar ingen roll vilken sida du sätter en usercontrol på och vilka namespace dessa har. Visas de så fungerar allt och dess parent blir kontrollen user controllen ligger i.
Mvh JohanSv:komma åt parent aspx sida
show myParent = (show)this.Page;
sätter jag myParent att bli min aspx sida som laddar in usercontrolen och kommer åt alla publika variabler och funktioner.
däremot pekar this.Parent på själva placeholdern som usercontrolen är laddad i och this.Parent.Parent pekar på formuläret. Kommer inte åt aspx sidans publika variabler eller funktioner på detta sättet.
Tillbaka på ruta 1, jag måste ange hela namespacet i namespace.show myParent = (namespace.show)this.Page;
Du skrev att du hade löst detta på ett annat sätt, finns det bättre sätt att lösa detta på kanske du kan peka mig i den riktningen.
mvh
AndersSv: komma åt parent aspx sida
Hej, Sant du måste göra en casting så som du gör för att komma åt dem. Detta kommer du inte undan.
Det är med annat sätt borde vart andra sätt, för du kan lösa sådana saker på många olika sätt, dock baseras mina sätt på den omliggande designen jag byggt upp så det är lite svårt att bara säga ett bra sätt om jag inte vet dina krav och alla anledningar etc...
Jag brukar inte bygga ett beroende mellan varaibler på page vs usercontrol utan gör dem rätt fristående, vill page ha data får den fråga user kontrollen, vill userkontrollen ha data skickr jag in den i usercontrolen. Det är oftast det första designval jag brukar tänka på, men så finns det ju alltid undantag som gör att jag väljer andra desing patterns.
Mvh Johan