webForumDet fria alternativet

FindControl() från Page i GenericHandler (*.ashx)

.NET

3 svar · 537 visningar · startad av PBF

Medlem sedan mars 200657 inlägg
Frågan#1

Tjänare!

Har en Generic Handler där jag försöker hitta en kontroll som finns på en sida vid namn "Profile.aspx". På nåt sätt måste jag hitta denna kontroll i min generic handler, men varje gång jag kör FindControl så returnerar den null. Ska man referera på nåt vis till mitt Page-objekt ("Profile.aspx") eller hur ska man gå tillväga?

Min nuvarande kod är följande:

public void ProcessRequest(HttpContext context)
 {

 context.Response.ContentType = "text/plain";

 PlaceHolder phGuestbook = FindControl("phGuestbook") as PlaceHolder;
 UserControl uc = LoadControl(path+userControl+ext) as UserControl;
 phGuestbook.Controls.Add(uc);

}

Den hittar ju min användarkontroll men inte phGuestbook som finns i min Profile.aspx. Hur kan jag hitta min phGuestbook i min kära Profile.aspx-fil? ;-)

Medlem sedan maj 20011 312 inlägg
#2

Kör http://localhost/trace.axd så ser du var i strukturen din kontroll är. Troligtvis får du köra findcontrol flera gånger på olika kontroller för att hitta den underliggande kontroll du vill åt. Via tracen så får du en bra struktur över kontrollträdet.

Medlem sedan mars 200657 inlägg
#3

Det är två olika kontexter, det går inte att komma åt PlaceHoldern där... Får tänka om :)

Medlem sedan maj 20011 312 inlägg
#4

Det borde inte vara ett problem bara du börjar från toppen och gräver ned dig genom kontrollträdstrukturen. Jaja, du löser det :)

333 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
204 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)