Hej, Det var en liknande sak på tapeten för ett tag sen. Kanske du kan hitta inspiration i denna tråd: [Web user control skicka data till "parentformuläret"?]. Nu var det ju just det jag inte sa. Det är ingen kontroll - det är ett objekt. Oki. Tja du _skulle_ ju kunna använda reflection, eller så använder du en enklare och mycket snabbare variant med lite casting: Ja, det där har jag fått förklarat för mig, men jag kan inte tycka att det är en bra lösning. Min control ligger ju på olika WebForms. Så jag kan ju inte skapa ett objekt i kontrollen och casta den till "föräldersideklassen" om föräldersidan är olika vid olika tillfällen... Hajjaru vad jag menar? :) se då till att du skapar en basklass som innehåller medlemmen du vill komma åt, sen ärver du från den. Exempel med interface:Komma åt objekt på en ASPX-sida
Jag har en ASPX-sida på vilken jag har en UserControl. På ASPX-sidan har jag ett objekt (inte ett objekt från System.Web.UI.WebControls). Detta objekt måste jag komma åt från min UserControl. Hur gör jag? Jag har gjort ett försök som såg ut så här nånting:
<code>
Private parentPage As System.Web.UI.Page = DirectCast(HttpContext.Current.Handler, System.Web.UI.Page)
Private myObj As MyNamespace.MyObject = DirectCast(parentPage.myObjOnParentPage, MyNamespace.MyObject)
</code>
Men se det går ju inte...Sv: Komma åt objekt på en ASPX-sida
Annars behöver jag veta vad du menar med att kontrollen inte är ett objekt av typen Web.UI.WebControls. Vad är det för kontroll och körs den på servern??
//Mikael.NETSv: Komma åt objekt på en ASPX-sida
Jag ska förtydliga mig, för visst kan det bli förvirrande med kontroller och objekt och klasser osv...
Vad en klass är inom objektorienterad programmering hoppas jag att de flesta om sysslar med .Net är.
Ett objekt är en instans av en klass.
De objekt som instansieras från klasser i det speciella namespace:et System.Web.UI.WebControls kallas kontroller - Server Side Controls eller WebControls.
I code-behind till min ASPX-sida har jag instansierat ett objekt från en klass som jag själv har gjort, vi kan kalla den MyClass. Denna klass ligger i mitt eget namespace, MyNamespace. Så här ser det ut då på min aspx.vb-sida:
<code>
Public oMyInstance As New MyNamespace.MyClass()
</code>
Detta objekt, oMyInstance, vill jag komma åt från min UserControl som ligger på ASPX-sidan i fråga...
Men hur?!
Jag tittade på ditt exempel på det inlägget du refererade till. Problemet är att metoden FindControl returnerar ett objekt i namespacet System.Web.UI.WebControls, dvs en WebControl. Men mitt objekt är ingen kontroll!Sv: Komma åt objekt på en ASPX-sida
Så om jag fattar dig rätt vill du att din userControl ska komma åt en instans av en klass som din aspx-sida har instansierat. Aspx-sidan är den som innnehåller usercontrollen.
Om det är så har jag inget annat svar är att du måste skicka in instansen av klassen i usercontrollen, som en parameter då den skapas.
Annars så har jag för mig att System.Reflection har med ditt problem att göra.
//Mikael.NETSv: Komma åt objekt på en ASPX-sida
Publik egenskap i WebForm 1:
<code>
public string name = "muhahah";
</code>
I user controlen tar du tag i sidan och castar om den till en typ av webform1.
<code>
WebForm1 wf = (WebForm1)this.Page;
Label1.Text = wf.name;
</code>
Sorry att det tog lite tid, legat däckad i feber och prylar... Sv: Komma åt objekt på en ASPX-sida
Sv: Komma åt objekt på en ASPX-sida
Eller så skapar du ett gemensamt interface som alla ärver.
Du blir tvungen att skapa någon form av MGN om du vill komma åt medlemmen.
Annars kan du använda dig av runtime reflection, vilket är att jämföra med latebinding och allt det för med sig med overhead och osäkerhet vid exekvering.Sv: Komma åt objekt på en ASPX-sida
Programarkivet:Accessa custom medlemmar från en sida via interface
exemple med basklass:
Programarkivet:Accessa custom medlemmar från en sida via basklasser