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";
}
}
}
