Hejsan, I Page-init-eventet kan du ju kolla om querystringen finns, och finns den inte så petar du ut lite javascript med Response.Write, sedan dödar du sidan med Response.End Tjena kollegan... Att stoppa in en Response.End funkar inte för då dör verkligen hela exekveringen och jag får aldrig tag i datornamnet.Bryta körningen av flera Page_Load?
i vårt system har vi startsida för användarna som består av 3 st WUCar, alltså Web User Controls. Eftersom varje WUC har en egen Page_Load körs ju 4 st Page_Load efter varandra, i varje Page_Load sker lite olika saker.
Nu har det kommit ett krav på att vi måste läsa av datornamnet för att avgöra från vilket land och site en användare kommer, vilket land och vilken site avgör vilken info de får se i de listor över elektroniska tidskrifter som skapas.
Så vitt jag vet går det inte att ta reda på datornamnet på serversidan utan bara m h a javascript, genom:
<CODE>
var objNet = new ActiveXObject("WScript.NetWork");
var sComputerName;
sComputerName = objNet.ComputerName;
</CODE>
Efter detta vill jag göra en omladdning av sidan genom:
<CODE>
document.location.href = "/samePage.aspx?&COMPUTER_NAME=" + sComputerName;
</CODE>
Sedan vill jag i samePages codebehind kolla querystringen, plocka ut datornamnet och använda detta i mina anrop till databasen.
Problemet är att även om javascriptet ovan körs så traskar ju servern vidare med de 4 Page_Load som skall göras så jag får aldrig tag i den querystring som innehåller datornamnet. Jag vet inte hur jag skall göra för att få ordning på detta.
På ngt sätt vill jag ju bryta exekveringen av alla Page_Load så att jag i första läget plockar ut datornamnet och sedan laddar om sidan, då kollar jag om jag har ett datornamn med i querystringen och i så fall kör jag på med Page_Load för de 3 WUC:arna, ngn som vet ifall detta går att lösa?
/MagnusSv: Bryta körningen av flera Page_Load?
Sv:Bryta körningen av flera Page_Load?
Du kan väl ladda WUC:arna dynamiskt beroende på om querystringen finns. Alltså lägg bara ut dom ibland.
Eller fattar jag dig fel?
Alltså typ:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Request.QueryString("COMPUTER_NAME") <> "" Then
Dim MinWuc As wucEttan = LoadControl("wucEttan.ascx")
PanelDärControlenSkallVisas.Controls.Add(MinWuc)
Else
'Nånting annat.....
End If
End Sub
Ä'ru me?
/Jocke
Sv: Bryta körningen av flera Page_Load?
Däremot funkar det utmärkt att göra som Jocke föreslog, jag laddar in Wuc:en dynamiskt istället när jag väl vet att jag fått tag i datornamnet. Enkel och effektiv lösning.
/Magnus