Avatar billede Slettet bruger
25. marts 2009 - 12:33 Der er 1 kommentar og
1 løsning

Dynamisk textboxes HJÆLP!:-)

Hej alle sammen.. :-)

Jeg har den her kode:

------------------------------------------------------------

    protected void Tracks_SelectedIndexChanged(object sender, EventArgs e)
    {
        int numlabels = System.Convert.ToInt32(Tracks.SelectedItem.Text);
        for (int i = 1; i <= numlabels; i++)
        {
            TextBox TrackBox = new TextBox();
            TrackBox.ID = "TrackID" + i.ToString();

            TextBox ArtistBox = new TextBox();
            ArtistBox.ID = "ArtistID" + i.ToString();

            PlaceHolder1.Controls.Add(new LiteralControl(i.ToString() + ". "));
            PlaceHolder1.Controls.Add(ArtistBox);
            PlaceHolder1.Controls.Add(new LiteralControl(" : "));
            PlaceHolder1.Controls.Add(TrackBox);
            PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
        }
    }
    protected void AlbumSubmit_Click(object sender, EventArgs e)
    {
        int numlabels = System.Convert.ToInt32(Tracks.SelectedItem.Text);
        for (int i = 1; i <= numlabels; i++)
        {
            TextBox tBox = (TextBox)this.FindControl("TrackID" + i.ToString());
            Response.Write("TrackID" + i.ToString() + " : " + tBox.Text + "<br>");
        }
    }

------------------------------------------------------------

Men når jeg prøver at køre mit script siger den:

------------------------------------------------------------

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

------------------------------------------------------------

Line 72:        {
Line 73:            TextBox tBox = (TextBox)this.FindControl("TrackID" + i.ToString());
Line 74:            Response.Write("TrackID" + i.ToString() + " : " + tBox.Text + "<br>");
Line 75:        }
Line 76:    }
Avatar billede Slettet bruger
25. marts 2009 - 13:10 #1
Jubiiii, fik det til at virke.
Jeg kører over en querystring i stedet, for når jeg trykkede AlbumSubmit så forsvandt textboxene.. :)

koden til dem der er intresseret.
---------------------------------------

    protected void Page_Load(object sender, EventArgs e)
    {
        CountRows();
        if (Page.IsPostBack == false)
        {
            for (int i = 1; i <= 50; i++)
            {
                Tracks.Items.Add(i.ToString());
            }
        }

        int numlabels = 1;
        if (Request.QueryString["Tracks"] != null) { numlabels = Convert.ToInt16(Request.QueryString["Tracks"]); }
        for (int i = 1; i <= numlabels; i++)
        {
            TextBox TrackBox = new TextBox();
            TrackBox.ID = "TrackID" + i.ToString();

            TextBox ArtistBox = new TextBox();
            ArtistBox.ID = "ArtistID" + i.ToString();

            PlaceHolder1.Controls.Add(new LiteralControl(i.ToString() + ". "));
            PlaceHolder1.Controls.Add(ArtistBox);
            PlaceHolder1.Controls.Add(new LiteralControl(" : "));
            PlaceHolder1.Controls.Add(TrackBox);
            PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
        }

    }

    protected void CountRows()
    {
        MySqlConnection CommentsConn = new MySqlConnection(strConn);
        MySqlCommand CommentsCommand = CommentsConn.CreateCommand();
        MySqlCommand CommentsSQL = new MySqlCommand("SELECT COUNT(*) As t_Counts FROM dj_Albums", CommentsConn);
        CommentsCommand.Connection.Open();

        MySqlDataReader rdr = CommentsSQL.ExecuteReader();
        int Count = 0;

        while (rdr.Read())
        {
            Count = rdr.GetInt16("t_Counts");
        }

        CountRowsInDBLabel.Text = Count.ToString() + " albums";

        CommentsCommand.Connection.Close();
    }

    protected void Tracks_SelectedIndexChanged(object sender, EventArgs e)
    {
        Response.Redirect("Add.aspx?Tracks=" + Tracks.SelectedItem.Text);
    }
    protected void AlbumSubmit_Click(object sender, EventArgs e)
    {
        int numlabels = 1;
        if (Request.QueryString["Tracks"] != null) { numlabels = Convert.ToInt16(Request.QueryString["Tracks"]); }
        for (int i = 1; i <= numlabels; i++)
        {
            TextBox tBox = (TextBox)this.PlaceHolder1.FindControl("TrackID" + i.ToString());
            if (tBox != null)
            {
                Response.Write(tBox.Text + "<br>");
            }
        }
    }
Avatar billede Slettet bruger
25. marts 2009 - 13:11 #2
protected void CountRows() er unødvendig, men jeg kopirede bare hele min kode.. :-)
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