Filtering data and adding headers within same datagrid

Discussion in 'ASP .Net Datagrid Control' started by Tr, Apr 23, 2004.

  1. Tr

    Tr Guest

    Hello,

    Posted this over on the ADO.net group but it belongs here.

    I am working on a ASP page with a datagrid that has 5 columns that I bind
    to
    a datatable which is filled via the ReadXml parser.
    Once this data is there I need a way to:
    1) Segregate each unique group of data that has the same value in one of
    the
    fields.
    (ie DataRow dr["col1"] = 'A' - A data, DataRow dr["col1"] = 'B' - B
    data, etc )

    For the A data the data grid would have headers H1, H2, H3, H4, H5
    data: d1
    d2 d3 d4 d5
    For the B data the data grid would have H1,
    H5

    d1 d5
    Something different for C data H1, H3,
    H5

    d1 d3 d5

    This must occur within the same datagrid D1.
    I have figured out how to get the unique headers into the datagrid by
    checking the data from the dataset but getting that
    special label row in the right place along with its associated data escapes
    me.

    2) Ensure that I capture the first instance of B data in col1 and insert
    that label row into the grid.

    I have already used unique datagrid for each set of data but that wasn't
    pretty enough for the customer because the columns didn't
    line up from one grid to the next.

    Any Help is appreciated,
    Trez

    PS. Using C#
     
    Tr, Apr 23, 2004
    #1
    1. Advertising

  2. Tr

    Eidolon Guest

    Hi,

    I have done this several times recently, and it works pretty well. Here is
    the code i use. I picked it up from some site, and then just adapted it to
    our projects. It is VB though. Most of it shouldnt be too hard to convert to
    C#, but there are a few keywords and things i wasnt sure of so i figured id
    leave that for someone who is more familiar with C# rather than messing it
    up by accident.

    HTH.

    Private Sub grdHours_ItemCreated(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridItemEventArgs) Handles
    grdHours.ItemCreated
    Dim i As DataGridItem = e.Item
    Static lastproject As String

    Select Case i.ItemType
    Case ListItemType.Header
    lastproject = ""
    Case ListItemType.Item, ListItemType.AlternatingItem
    Dim curproject As String, curprojectnum As String
    If Binding Then
    Dim dr As DataRow = CType(i.DataItem, DataRowView).Row
    curproject = dr("PROJECT")
    curprojectnum = dr("PROJECTNUM")
    Else
    curproject = i.Cells(10).Text
    curprojectnum = i.Cells(11).Text
    End If

    If curproject <> lastproject Then
    Dim grd As DataGrid = sender
    Dim c As TableCell, di As DataGridItem

    c = New TableCell
    With c
    .ColumnSpan = grd.Columns.Count
    .BackColor = ColorTranslator.FromHtml("#B0C4DE")
    .ForeColor = ColorTranslator.FromHtml("#553E13")
    .Font.Bold = True
    .Style.Add("FONT-VARIANT", "SMALL-CAPS")
    .Style.Add("PADDING-LEFT", "3px")
    .Style.Add("BORDER-RIGHT", "#A5A6A5 1px solid")
    .Style.Add("BORDER-BOTTOM", "#A5A6A5 2px solid")

    .Text = curproject & " [<label style='color: Navy'>"
    & curprojectnum & "</label>]"
    .Text &= " - <label style='font-weight: normal;
    font-size: 8pt; color: black; font-variant: normal;'>" &
    CStr(NVL(dbObj.ExecuteScalar("SELECT PROJECT_DESC1 FROM PROJECTS WHERE
    PROJECT_NO = " & curprojectnum), "")).ToLower & "</label>"
    End With
    di = New DataGridItem(i.ItemIndex + 1, 0,
    ListItemType.Item)
    di.Cells.Add(c)
    CType(grd.Controls(0), Table).Rows.Add(di)

    lastproject = curproject
    End If
    End Select
    End Sub
     
    Eidolon, May 20, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Sam Vanderstraeten

    Adding textboxes for filtering in DataGrid header

    Sam Vanderstraeten, Oct 1, 2003, in forum: ASP .Net
    Replies:
    0
    Views:
    504
    Sam Vanderstraeten
    Oct 1, 2003
  2. Sam Vanderstraeten

    Adding textboxes for filtering in DataGrid header

    Sam Vanderstraeten, Oct 2, 2003, in forum: ASP .Net
    Replies:
    0
    Views:
    2,186
    Sam Vanderstraeten
    Oct 2, 2003
  3. Sam Vanderstraeten

    Adding textboxes for filtering in DataGrid header

    Sam Vanderstraeten, Oct 1, 2003, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    229
    Sam Vanderstraeten
    Oct 1, 2003
  4. Sam Vanderstraeten

    Adding textboxes for filtering in DataGrid header

    Sam Vanderstraeten, Oct 2, 2003, in forum: ASP .Net Building Controls
    Replies:
    0
    Views:
    159
    Sam Vanderstraeten
    Oct 2, 2003
  5. Sam Vanderstraeten

    Adding textboxes for filtering in DataGrid header

    Sam Vanderstraeten, Oct 1, 2003, in forum: ASP .Net Datagrid Control
    Replies:
    0
    Views:
    166
    Sam Vanderstraeten
    Oct 1, 2003
Loading...

Share This Page