Avatar billede anders_cp Nybegynder
18. februar 2010 - 16:59 Der er 3 kommentarer og
1 løsning

Slet rækker i Gridview

Hejsa
Jeg har lavet et gridview som indeholder flg.:
checkbox
og tre andre kolonner.

Meningen er at man skal trykke på checkboxene og slette x-antal rækker (ikke noget med databasen i denne fase). Flg. kode virker IKKE - den første slettes korrekt, men herefter slettes de forkerte rækker:


        protected void LinkButtonDeleteProducts_Click(object sender, EventArgs e)
        {
          //  CheckBox cbe = (CheckBox)GridLines.Rows[0].FindControl("DeleteLines");
                // Create DeleteindexArray
                int i = 0;
                ArrayList deleteindex = new ArrayList();
                foreach (GridViewRow row in GridLines.Rows)
                {
                    CheckBox cb = (CheckBox)row.FindControl("DeleteLines");
                    if (cb != null && cb.Checked)
                        deleteindex.Add(i);
                    i++;
                }

                // Delete selected indexes
                foreach (int y in deleteindex)
                {
                    oTable.Rows[y].Delete();
                    oTable.AcceptChanges();
                    GridLines.DataSource = oTable;
                    GridLines.DataBind();
                }
        }


Håber I kan hjælpe mig ;)
Avatar billede platik Nybegynder
18. februar 2010 - 19:30 #1
Skyldes nok du sletter en række og så passer dine index ikke mere, da der efterfølgende er en mindre. Hvis ellers de har samme plads hver gang du databinder så prøv at ændre nederste del til:

int slettetRows = 0;
foreach (int y in deleteindex)
    {
        oTable.Rows[y - slettetRows].Delete();
        slettetRows ++;
        oTable.AcceptChanges();
        GridLines.DataSource = oTable;
        GridLines.DataBind();
    }

Har ikke testes, men et bud på en løsning.

Alternativt skal du nok slette row når du finder checkbox i stedet for at ligge pladsen i en liste først.
Avatar billede anders_cp Nybegynder
19. februar 2010 - 12:11 #2
Perfekt. Det virker! Tak for det :-)
Havde selv forsøgt mig med noget lignende, uden held.

Læg et svar.
Avatar billede platik Nybegynder
20. februar 2010 - 12:22 #3
Svar :-)
Avatar billede anders_cp Nybegynder
20. februar 2010 - 20:23 #4
Tak for hjælpen :-)
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