Avatar billede banielsen Nybegynder
20. april 2007 - 19:21 Der er 2 kommentarer og
1 løsning

Får ikke den nye værdi med ud af textbox

Hej Experten

Jeg har et problem med at jeg ikke får den nye værdi med ud af en textbox og gemt i min database.
Jeg har lavet en side hvorpå der er en tabel med nogle oplysninger. I tabellen har jeg lavet en kolonne med et link til at ændre i oplysninger. Ved tryk på dette ryger man over på en ny side. Koden til dette ser således ud:
Session["opretAendreFunktion"] = 2;
                Session["nr"] = e.Item.Cells[0].Text;
                Session["navn"] = e.Item.Cells[1].Text;
                Response.Redirect("OpretAendreFunktion.aspx");

Over på den nye side ligger jeg værdien fra variablen navn ind i en textbox.
Når jeg kører siden, og ændrer værdien i textboxen og klikker "gem", så gemmer siden den "gamle" værdi. Koden på ændringssiden følger herunder:
private int opretAendreSwitch;
        private int OPRET = 1;
        private int AENDRE = 2;

        private int nr;


        private void Page_Load(object sender, System.EventArgs e)
        {
            if(!IsPostBack)
            {
                int opretAendreSw = Convert.ToInt32(Session["opretAendreFunktion"].ToString());
           
                if (opretAendreSw == OPRET)
                {
                    setToOpret();
                }
                else if (opretAendreSw == AENDRE)
                {
                    int nrTemp = Convert.ToInt32(Session["nr"].ToString());
                    string navnTemp = Session["navn"].ToString();
   
                    setToAendre(nrTemp, navnTemp);
                }
            }
        }

private void setToOpret()
        {
            opretAendreSwitch = OPRET;
            OverskriftLabel.Text = "Opret funktion";
        }

        private void setToAendre(int nrTemp, string navnTemp)
        {
            OverskriftLabel.Text = "Ændre funktion";
            opretAendreSwitch = AENDRE;

            this.nr = nrTemp;
            FunktionTextBox.Text = navnTemp;
        }

        private void GemButton_Click(object sender, System.EventArgs e)
        {   
            string navn = FunktionTextBox.Text;

            if (opretAendreSwitch == OPRET)
            {
                opretFunktion(navn);
            }
            else 
            {
                aendreFunktion(navn);
            }

            Response.Redirect("VisAlleFunktioner.aspx");
        }


        private void opretFunktion(string navn)
        {
            this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@navn", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Navn", System.Data.DataRowVersion.Current, navn));

            sqlConnection1.Open();
            sqlInsertCommand1.ExecuteNonQuery();
            sqlConnection1.Close();
        }

        private void aendreFunktion(string navn)
        {
            this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Nr", System.Data.SqlDbType.BigInt, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Nr", System.Data.DataRowVersion.Current, nr));
            this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@navn", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Navn", System.Data.DataRowVersion.Current, FunktionTextBox.Text));
                                   
            sqlConnection1.Open();
            int hest = sqlUpdateCommand1.ExecuteNonQuery();
            sqlConnection1.Close();
        }

Jeg har læst at jeg skal bruge metoden "isPostBack", men synes stadig ikke jeg kan få det til at spille.

Takker på forhånd :-)
Avatar billede nico26 Nybegynder
21. april 2007 - 17:27 #1
IsPostBack er true hvis du submitter siden, så du skal sige:
if (IsPostBack)

i stedet for

if (!IsPostBack)
Avatar billede banielsen Nybegynder
21. april 2007 - 18:52 #2
Det kan jeg ikke helt følge dig i.... den "if(!IsPostBack)" jeg har i Page_load-metoden er false når jeg kommer fra den sidste side, og derved bliver mine labels og tekstfelter sat rigtigt op. Men når jeg gemmer er den true, og mine labels og tekstfelter bliver ikke sat op.. den er vel god nok ik'?
(jeg har også lige prøvet, for en sikkerhedsskyld, men det virker desværre ikke)
Avatar billede banielsen Nybegynder
22. april 2007 - 20:40 #3
Lavede et nyt forenkelet spørgsmål her: http://www.eksperten.dk/spm/774554
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