GridView wertet RowState Edit oder Select scheinbar nicht aus

by AlexanderZeitler 31. July 2006 06:16

Ich hatte eben mit folgendem Code ein interessantes Erlebnis:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) {
   if (e.Row.RowType == DataControlRowType.DataRow) {
      if (e.Row.RowState != DataControlRowState.Selected && this.GridView1.SelectedIndex > -1) {
         e.Row.Visible = false;
      }
   }
}

Dies führte dazu, dass die Alternating Items (also die geradzahligen Items 2, 4, 6) niemals sichtbar wurden.

Beim Debuggen zeigte sich dann des Rätsels Lösung: Der RowState wurde als "Alternate | Selected" angezeigt, d.h. als Kombinitaion zweier States.

Wie lässt sich nun feststellen, ob der DataControlRowState.Selected vorhanden ist?

Die Lösung liegt in der Verwendung des bitweisen UND-Operators (&):

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) {
   if (e.Row.RowType == DataControlRowType.DataRow) {
      if ((e.Row.RowState & DataControlRowState.Selected) == 0 && this.GridView1.SelectedIndex > -1) {
         e.Row.Visible = false;
      }
   }
}
Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitte "kicken" sie ihn.
kick it on dotnet-kicks.de

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Powered by BlogEngine.NET
Theme by Alexander Zeitler

Search

Community