2009-08-25 3 views
1

Ich bin neu in ASP.NET. Ich versuche, meine SQL-Ergebnisse mithilfe einer Listenansicht anzuzeigen. Ich verwende das Beispiel, um meine Ergebnisse nach einem Datenfeld von 4GuysFromRolla.com website zu gruppieren. Allerdings finde ich die Art der Gruppierung der Elemente durch ein Datenfeld etwas unbeholfen. Gibt es einen besseren Weg, es zu tun?Gruppieren von Zeilen in ASP.Net ListView

Danke.

Antwort

0

Ich habe nie ein Listview, aber ich habe nicht in einem Gridview-Gruppierung. Sie können versuchen, dies zu einem ListView zu portieren, wenn Sie möchten:

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) 
    Dim tblGrid As Table = Me.GridView1.Controls(0) 
    Dim strLastCat As String = "@" 
    Dim row As GridViewRow 


    For Each row In GridView1.Rows 
     Dim intRealIndex As Integer = tblGrid.Rows.GetRowIndex(row) 
     Dim strCat As String = Me.GridView1.DataKeys(row.RowIndex).Value 

     If strLastCat <> strCat Then 
      Dim rowHeader As New GridViewRow(intRealIndex, intRealIndex, DataControlRowType.Separator, DataControlRowState.Normal) 
      Dim newCell As New TableCell 

      newCell.ColumnSpan = Me.GridView1.Columns.Count 
      newCell.BackColor = System.Drawing.Color.FromArgb(61, 138, 20) 
      newCell.ForeColor = System.Drawing.Color.FromArgb(255, 255, 255) 
      newCell.Font.Bold = True 
      newCell.Font.Size = New FontUnit(FontSize.Larger) 
      newCell.Text = strCat 

      rowHeader.Cells.Add(newCell) 
      tblGrid.Controls.AddAt(intRealIndex, rowHeader) 
      strLastCat = strCat 

     End If 

    Next 

    MyBase.Render(writer) 
End Sub 

Der Code erstellt Header jeder Kategorie. Die endgültige Version kann hier angesehen werden: http://www.truedietreviews.com/diet-reviews/