Avatar billede scorp-d Nybegynder
23. juni 2010 - 17:00

Databind GridView via ekstern button

Hej.
Har lavet lidt forskellige UserControl's som jeg har lagt ind i et TemplateField i en Gridview.
Den UserControl som giver problemer indeholder en UpdatePanel.

De UserControl's har så en masse bindable properties, som jeg har sat binding op til(har prøvet både eval og bind) i gridview'en.

GridView'en bliver så bind'et til en datatable, hvilket fungere udmærket.


Problemet opstår ved at man kan udfylde nogle felter udenfor GridView'en og trykker på en button, som så opretter det nye data i databasen.

Hvis jeg laver DataBinding på GridView'en ved et postback(Page_Load etc.) har den selvfølgelig ikke nået at kalde knappens Click-event,  og hvis jeg derimod gør det i click-event'et så bliver det rigtige antal af UserControl's oprettede, men deres værdier er Null !

Når jeg laver følgende i et postback:

GridView.DataSource = DataTable;
GridView.DataBind();

Bør det så ikke kalde de bindable properties i de UserControl's som GridView'en indeholder, og bagefter deres Page_Load?

Hvis jeg debugger de pågældende UserControl's virker det som om at følgende sker:

1)    Den allerede eksisterende UserControl samt den ene nyoprettede, kalder deres Page_Load.
    a.    Den eksisterende har de rigtige/oprindelige værdier.
    b.    Den nyoprettede har Null i alle dens værdier.

2)    Så bliver der oprettede en ny UserControl til den eksisterende UserControl.
    a.    Dens bindable properties kaldt med de rigtige værdier.
    b.    Dens Page_Load bliver kaldt igen, men denne gang er alle værdier Null.

3)    Så bliver der oprettede en ny UserControl til den nyoprettede.
    a.    Dens bindable properties kaldt med de rigtige værdier.

For det første så bliver den nyoprettede UserControl's Page_Load aldrig kaldt, og for det andet så mister den oprindelige UserControl sine værdier.

Den lette løsning er selvfølelig at lave en Response.Redirect til den samme side, men kan umuligt være den pæne løsning.

På forhånd tak
Scorp-D
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