20. august 2002 - 22:53Der er
9 kommentarer og 2 løsninger
Databinding af QueryString
Hey.
Jeg har ASP.NET miljø, bestående af 5 forskellige projekter, som deler nogle fælles ServerControls, som jeg opbevarer i en DLL-fil, i de enkelte mappers bin-mappe.
Denne DLL-fil er registeret på denne måde: <%@ Register TagPrefix="SiteCube" Namespace="SiteCubeControls" Assembly="SiteCubeControls" %>
Jeg ønsker at anvende variablen Request.QueryString.Get("pageId") i de forskellige servercontrols, hvilket jeg har forsøgt på, ved at anvende databinding på denne måde: <SiteCube:SingleElement pageId="<%# Request.QueryString.Get("pageId") %>" element="frontpageText" runat="server" />
Men tilsyneladende, sker Databinding FØR den har indlæst collectionen Request.QueryString - så denne returnere altid NULL på det stadie.
Jeg har forsøgt med en metode, som vil virke ved mindre belastning, men jeg vil ikke implementere en sådan, da den er usikker. I global.asax:
public static int pageId; protected void Application_BeginRequest(Object sender, EventArgs e) { pageId = Convert.ToInt32(Request.QueryString.Get("pageId")); }
Og så databinde pageId ved: <SiteCube:Single ..... pageId="<%# Global.pageId %>" .... />
Men hvis der sker to requests hurtigt efter hinanden, vil det andet request nå at ændre det første requests indstilling af Global.pageId variablen - så det holder ikke vand i den virkelige verden.
Jeg har også prøvet, simpelthen at databinde Request-objektet til min ServerControl - men det så ikke ud til at virke.
Nogle der har en løsning på mit problem?
Man har iøvrigt IKKE adgang til at sætte en Session-variabel fra Application_BeginRequest.
odegaard, modellen i Page_Load-eventen, er ikke brugbar, da der IKKE er nogen aktiv (og det må der ikke være) i ASPX filen, den må KUN arbejde med ServerControls, som jeg stiller tilrådighed for en grafiker.
Kan du ikke blot bruge code-behind ? Så kan du lave en "ikke-aktiv" fil og en aktiv fil. Det er jo netop idéen at designer og programmør kan arbejde næsten uafhængigt af hinanden, da de får hver sin fil at arbejde med. Så kan du lave så meget kode du ønsker.
Control klassen nedarver svjh. allerede fra Page objektet så du skal bare implementere Page_Load
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.