26. januar 2005 - 16:34Der er
14 kommentarer og 1 løsning
Problem med load/unload af usercontrol
Jeg har et problem med at jeg gerne vil vide om en usercontrol er blevet kaldt af en lokal postback hvis man kan sige det på den måde. Problemet er at jeg har en aspx-side der loader udercontrols på baggrund af hvad brugeren trykker på. Dvs. siden bliver kun loadet en gang og herefter en masse postback. Mit problem er altså at jeg mangler en metode der kan sige mig om det er første gang page_load bliver kaldt kaldt på en userControl, og ikke globalt på hele siden da denne jo bliver postet tilbage mange gange. Jeg håber jeg har gjort mig nogenlunde forståelig.
Er der nogle der kan hjælpe mig med dette problem? Mvh
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Faktisk er det fordi jeg i toppen af siden ude på aspx siden har nogle linkbuttons der laver postback. Når der så trykkes på søg-knappen og søge-usercontrollen skal loades ind er det jo så et postback fordi linkbutton laver et postback. Men det er jo altså første gang usercontrollen loades og jeg skal bruge noget ala if(!isPostBack) hvilket ikke virker da det jo netop nu er en postback....
hmm.. tja.. du kan vel lave en form for counter i din usercontrol som du tæller op hver gang control'en loades. Ud fra den tæller kan du jo se om det er første gang
og nej, der findes ikke noget standard, da det ikke er et standard scenario.
Typisk vil man bruge forskellige url's for de forskellige controls.
Set nu at du gerne vil give mig et link hvor jeg kan se din søgeside. Hvordan vil du linke til den exacte side? Det kan du ikke, og vupti er vi havnet i samme dødsfælde som flash har.
Ideen i det er at lave et modulopbygget grænsefladelag som er letoverskueligt og letmodificerbart. Det opnås netop ved at bygge user controls som kan puttes ind og genbruges rundt omkring.
det modsiger jeg dig heller ikke i.. det er mere hvordan det bestemmes hvilke kontroller der skal vises.
Forestil dig 10 forskellige kontroller med hver deres 10 underkontroller. Du står nu på en nyhedsside med et bestemt nyhed omkring røde mus der har angrebet kænguruer. Alle links man har trykket på for at komme til denne sige har været baseret på postbacks, og man står nu og gerne vil bookmarke siden. Hvordan gør man det?
Er det muligt på en eller anden måde at ændre postback funktionen, således at hvis en knap på en usercontrol trykkes ned sørger denne knaps postbackfunktion for at ændre et pagenumber i viewstaten således at når hovedsiden, altså aspx sidens load_page som det første bliver kaldt kigger i viewstaten og nu ser hvilken side der skal loades på baggrund af hvad der ligger i viewstaten...og er lagt der af postbackfunktionen.
Altså jeg vil flytte controlleren således at det ikke er en page-controller men faktisk en front-controller der styrer tilgangen til alle sider. Hvordan gør jeg det nemmest i dotnet.
Umiddelbart, og som jeg også er gået igang med er at lave usercontrols der bliver switchet ind. En page sendes med i querystring som bliver interceptet i I hovedfilen, altså den aspx-fil der indeholder usercontrols. I denne fils page_load bliver den interceptet, hvorefter den bruger denne page til at loade en bestemt usercontrol ind. Dette bestemmes via en switch-case struktur som jeg har lagt i en seperat klasse der hedder controller.
Problemet er altså bare at dotnet jo gør brug af events og postback hvis man skal bruge de standard knapper der er. Det gør at jeg ikke rigtig kan sende et pagenummer med. Så spørgsmålet er hvad der er den smarteste måde at gøre det på?
Mmm du mener jeg skal gøre det hvor i usercontrollen? I selve knapeventet? Det kan vel ikke lade sig gøre da den jo først bliver loadet bagefter jeg skal bruge informationen...eller mener du i page_load?
well, okay... gjorde mit bedste, håber du kan bruge det til noget :)
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.