Avatar billede speedpete Nybegynder
27. april 2006 - 14:19 Der er 1 løsning

GridView sorteringsproblem

2.0: Jeg har et GridView, som kan sortere, og det virker fint, lige indtil jeg ændrer i GridView1_RowCreated, som ser ud som nedenstående.

Problemet er denne kodebolk:

// Farv SidstAktiv grøn hvis brugeren er online
            string username = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Bruger"));
            if (Membership.GetUser(username).IsOnline)
            {
                e.Row.Cells[6].ForeColor = System.Drawing.Color.Green;
            }

Så snart jeg sætter den ind, kan GridViewet ikke sortere - tager jeg den ud igen, kan det fint sortere. Her er hele metoden, som lovet:

void GridView1_RowCreated(Object o, System.Web.UI.WebControls.GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            // Farv Status rød eller sort
            string status = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Status"));
            if (status == "Låst")
            {
                e.Row.Cells[5].ForeColor = System.Drawing.Color.Red;
                e.Row.Cells[1].ForeColor = System.Drawing.Color.Red;
            }

            // Farv SidstAktiv grøn hvis brugeren er online
            string username = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Bruger"));
            if (Membership.GetUser(username).IsOnline)
            {
                e.Row.Cells[6].ForeColor = System.Drawing.Color.Green;
            }
           
            // Farv KodeSkift orange eller rød
            string kodeskift = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "KodeSkift"));
            if (kodeskift == "Nej - udløbet")
            {
                e.Row.Cells[8].ForeColor = System.Drawing.Color.Red;
                e.Row.Cells[1].ForeColor = System.Drawing.Color.Red;
                e.Row.Cells[1].Font.Strikeout = true;
                               
            }
            else if (kodeskift == "Skal skiftes")
            {
                e.Row.Cells[8].ForeColor = System.Drawing.Color.Orange;
                e.Row.Cells[1].ForeColor = System.Drawing.Color.Orange;
            }
           
            // css class til alle celler
            foreach (TableCell tc in e.Row.Cells)
            {
                tc.ControlStyle.CssClass = "liste";
            }
        }
    }
Avatar billede speedpete Nybegynder
15. juni 2007 - 10:12 #1
luk
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
Kurser inden for grundlæggende programmering

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