Avatar billede -mundi- Nybegynder
19. oktober 2004 - 16:58 Der er 3 kommentarer og
1 løsning

Dynamisk generede controls forsvinder ved postback

Ja titlen siger næsten det hele, jeg indsætter en masse controls ud fra et database udtræk. Men når jeg laver et postback forsvinder min controls ? Burde de ikke blive på siden selvom de er genereret dynamisk ?

Lidt kode :

private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            if(!IsPostBack){
                string lastyear = "",thisyear;
                bannerid = Request.QueryString["id"].ToString();
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.Add("@bannerid",bannerid);
                cmd.CommandText="select * from vw_bannerratio where bannerid=@bannerid";
                SqlDataReader result = cmd.ExecuteReader();

                tr = tblWeekholder.Rows;//all the tablerows
                               
                while (result.Read()){
                    thisyear=result["dateyear"].ToString();
                    if(thisyear!=lastyear){//add a table row with year
                        tblWeekholder.Rows.Add(new TableRow());
                        rc = tr[tr.Count-1].Cells; //tablerow cellcollection
                        rc.Add(new TableCell());
                        rc[0].ColumnSpan=3;
                        rc[0].Attributes.Add("align","center");
                        rc[0].Controls.Add(new LiteralControl("<br>"));
                        rc[0].Controls.Add(new LiteralControl(thisyear));

                        tr.Add(new TableRow());
                        tr[tr.Count-1].Cells.Add(new TableCell());
                        tr[tr.Count-1].Cells.Add(new TableCell());
                        tr[tr.Count-1].Cells.Add(new TableCell());

                        rc = tr[tr.Count-1].Cells; //tablerow cellcollection
                        rc[0].Text="Uge";
                        rc[1].Controls.Add(new System.Web.UI.WebControls.Image());
                        ((System.Web.UI.WebControls.Image)rc[1].Controls[0]).ImageUrl="img/9x9.gif";
                        rc[2].Controls.Add(new LiteralControl("Ratio"));
                    }   
   
                    tr.Add(new TableRow());//add new tablerow
                    rc = tr[tr.Count-1].Cells; //tablerow cellcollection
                    rc.Add(new TableCell());

                    rc[0].Controls.Add(new LiteralControl(result["dateweek"].ToString()));
                    rc.Add(new TableCell()); //spacer
                    rc.Add(new TableCell());
                    rc[2].Controls.Add(new TextBox());
                    rc[2].Controls.Add(new TextBox());
                    rc[2].Controls.Add(new TextBox());
                    cc = rc[2].Controls; //cell controls
                                        ((TextBox)cc[0]).CssClass="box5";
                    ((TextBox)cc[0]).Text = result["ratio"].ToString();
                    ((TextBox)cc[1]).Text = result["dateweek"].ToString();
                    ((TextBox)cc[1]).Visible=false;
                    ((TextBox)cc[2]).Text = result["dateyear"].ToString();
                    ((TextBox)cc[2]).Visible=false;
                lastyear=thisyear;
                }
            }
        }
Avatar billede snepnet Nybegynder
19. oktober 2004 - 17:01 #1
nej dynamisk indsatte kontroller skal indsættes hver gang.

der findes nogle der har lavet en mere eller mindre generel løsning på det... jeg finder lige et link til dig.

mvh
Avatar billede snepnet Nybegynder
19. oktober 2004 - 17:01 #2
Avatar billede -mundi- Nybegynder
19. oktober 2004 - 17:04 #3
Tak for det :-) Så kan det være jeg kan lære at læse dokumentationen ordenligt, det kunne have sparet mig for nogen timers debugging :-/

Smid lige et svar også :-)
Avatar billede snepnet Nybegynder
19. oktober 2004 - 17:12 #4
det var så lidt :o)
mvh
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