Avatar billede anhansen Nybegynder
08. juni 2004 - 15:24 Der er 11 kommentarer og
2 løsninger

Kan man ikke bruge usercontrols i Pageload?

Et lille hurtigt spørgsmål.

Jeg har lavet en "søgemenu" som en webcontrol (.ascx) som jeg har sat ind på min side.
Dette virker for så vidt fint. Men hvis jeg prøver at læse /sætte værdier for feltet i min page_load på "moder" siden, så får jeg en fejl.
Kan dette ikke lade sig gøre?
Skal det gøres inde fra kontrollen?
Avatar billede guidmaster Nybegynder
08. juni 2004 - 15:49 #1
Mener du skal ned i PreRender for at sætte værdien
Avatar billede casper_skovgaard Nybegynder
08. juni 2004 - 15:52 #2
Det kan godt lade sige gøre :)

I webcontrollen skal dine properties være public
fx:
public str MyValue
{
  get{ return TextBox1.Text;}
  set{ TextBox1.Text = value;}
}

på moder siden skal du erklære en ny instans af din webcontrol
fx:
protected MyWebControlClass MyControl;

her efter er propertien tilgængelig
fx:
MyControl.MyValue = "Test";
Avatar billede anhansen Nybegynder
09. juni 2004 - 08:28 #3
casper-> Ja, sådan tilgår jeg den også ellers i koden, og det virker fint, (det er dropdowns i usercontrollen jeg skal tilgå) når jeg trykker på min "søg" knap og skal aflæse dropdowns'ene.

Men hvis jeg sætter det ind i pageload - og prøver at genskabe værdierne som jeg havde gemt i en session, så får jeg en null fejl på objektet.
Dvs. at jeg på en eller anden måde gerne skulle have de to usercontrols' page_load til at køre før "moder"-sidens page_load.

Eller hvad? Jeg kan ikke helt gennemskue hvorfor det ikke virker. Har som sagt ingen problemer med at tilgå dem "senere" i koden.
Avatar billede anhansen Nybegynder
09. juni 2004 - 08:28 #4
guidmaster-> Kan du forklare lidt nærmere? Det lyder som noget der kunne være rigtigt..
Avatar billede anhansen Nybegynder
09. juni 2004 - 09:07 #5
har fundet noget med placeholder? Men det er vist kun nødvendigt hvis man indhenter kontrollerne dynamisk? Men det kan også være en løsning...
Avatar billede anhansen Nybegynder
09. juni 2004 - 09:16 #6
Det var nok det jeg tænkte... Nu har jeg lige prøvet mig frem med at udskrive i de respektive pageloads med REsponse.Write.

Og det fra "mainsiden" står først, hvorefter de to usercontrols kommer. Kan man på nogen måde få kontrollerne til at køre deres page_load først?

Eller er man nødt til at køre det som usercontrols hentet ind i koden og placeret i en placeholder?
Avatar billede casper_skovgaard Nybegynder
09. juni 2004 - 09:20 #7
jeg har ikke prøvet at arbejde med user controls, men hvis de virker på samme måde som custom web form controls, så kan men godt tilgå controllen i PageLoad, man skal bare skrive this.EnsureChildControls(); i get og set koden.

Men som quidmaster skriver kan det være du skal prøve at tilgå værdierne i PreRender. Med det mener han at du skal lave en event handler for PreRender eventen.
Bruger du vs.net kan det gøres automatisk, ved i designeren at vælge formen i property listen og derefter klikke event ikonen, så kan du skrive funktions navnet ud for PreRender.
Avatar billede casper_skovgaard Nybegynder
09. juni 2004 - 09:24 #8
Kald funktionen for Page_PreRender, så skulle du gerne få følgfende:

private void Page_PreRender(object sender, EventArgs e)
{
}

og InitializeComponent skulle der gerne stå følgende:

private void InitializeComponent()
{   
    this.Init += new System.EventHandler(this.Page_Init);
    this.Load += new System.EventHandler(this.Page_Load);
    this.PreRender += new System.EventHandler(this.Page_PreRender);
}
Avatar billede anhansen Nybegynder
09. juni 2004 - 11:30 #9
Selv om jeg bruger this.ensurechildControls(); sker der det samme.. Main page_load bliver kørt til ende inden den anden kører.
Avatar billede anhansen Nybegynder
09. juni 2004 - 11:33 #10
pre_render ser ud til at være vejen til guldet.. :-) Smid et svar casper og guidmaster.

Tak for hjælpen..
Avatar billede guidmaster Nybegynder
09. juni 2004 - 11:54 #11
svar
Avatar billede casper_skovgaard Nybegynder
09. juni 2004 - 11:56 #12
:)
Avatar billede anhansen Nybegynder
09. juni 2004 - 12:43 #13
muchos gracias señors..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester