webForumDet fria alternativet

Komma åt en usercontrol från en annan frame?

.NET

5 svar · 294 visningar · startad av silo

Medlem sedan nov. 200177 inlägg
Frågan#1

Har en inloggnings-usercontrol som består av två paneler, en för inloggad och en för icke inloggad. Denna usercontrol ligger i en frame på vänster sida. I mainframen så kan man bl.a. registrera en ny användare.
Jag vill att när man har registrerat en ny användare så ska man loggas in automatiskt, alltså panelen för inloggad i usercontrolen ska bli visible men hur kommer jag åt den från mainframen (från codebehind)?

På samma sätt skulle jag vilja komma åt mainframen från usercontrollen i vänsterframen så att jag kan ändra sidan i mainframen när man loggar in t.ex.

Medlem sedan juni 2004533 inlägg
#2

Det gör du inte. Frames finns i webbläsaren, och ASP.NET-koden körs på servern. Alltså kan du inte göra någonting som helst med någonting i en annan frame med ASP.NET.

Ifall du har satt Visible=False på kontrollen så renderas den inte när sidan skapas. Alltså finns den inte i sidan. För att den ska skapas måste du alltså ladda om sidan.

Eftersom du inte kan göra någonting med en annan frame med ASP.NET så måste du använda Javascript för att ladda om sidan.

Medlem sedan nov. 200177 inlägg
#3

Ok, har försökt nu i några timmar med javascript men är inte så bra på det. Har använt parent och allt sånt men det går bara inte att få till det.
Nån som kan ge en bra beskrivning på hur man ska gå tillväga, har sökt på javascriptforumet men inte lyckats hitta något...

Medlem sedan jan. 2004501 inlägg
#4

Jag vet inte om detta hjälper.
Men när du har skapat användaren gör du en response.redirect på hela sidan och går in på sidan igen. Och så kollar du i din usercontrol
if(!IsPostBack)
{
Kollar om du är inloggad.
Visa rätt sidor.
}

Medlem sedan juni 2004533 inlägg
#5

Så här laddar du om en frame:

top.NamnetPåFramen.location.reload(true);

Medlem sedan nov. 200177 inlägg
#6

Har nästan fått det att fungera nu tack vare top.NamnetPåFramen.location.reload(true); och att kolla om man är inloggad eller inte.
Det är när man registrerar en ny användare som det inte fungerar fullt ut.
Första gången jag registrerar en ny användare så går det alldeles utmärkt och vänsterframen ställer om sig till inloggad. Men sen om jag försöker registrera en till användare så får jag upp ett varningsmeddelande från IE om att sidan inte kan uppdateras om inte informationen skickas igen. Försök igen eller avbryt... När detta meddelande kommer upp är vänsterframen tom.

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