Ask a Question related to ASP.NET Data Grid Control, Design and Development.
-
Bill Musgrave #1
Two column header rows possible?
We are currently creating output displaying 'Total' and 'Avg' information.
Is it possible to add a row above, spanning multiple columns similar to
this?:
| Widgets |
+----------------+
| Total | Avg |
Thanks
Bill
Bill Musgrave Guest
-
Datagrid with multiple *header/category* rows
Is it possible to create a datagrid with this structure: --beverages-- wine beer coke --snacks-- popcorn nuts -
Can datagrid header text displayed more than one rows
Hello every one: I am facing a problem about header text of datagrid. Because some of the header text is long, about 30+ letter, and our cutomers... -
Repeat Header every 10 rows
Hi, everyone How can i repeat the datagrid header every 10 rows?? I have tried several methods, but all have failed so far. regards ... -
Multiple Header rows in datagrid
I have a need for multiple header rows in a datagrid. One header row contains the column headings, the next header row contains html input fields,... -
Image in header column (not replacing column header text)
I have a sortable (asc/desc) datagrid and would like to add a small arrow icon (down/up) next to the column header text to improve the UI. Is this... -
Eliyahu Goldin #2
Re: Two column header rows possible?
It is not supported directly, but I can think of faking it by inserting
another data row with subheaders into the data table. You can format in a
special way making it look differently from data items. You can use
PreRender event for formatting.
Eliyahu
"Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...> We are currently creating output displaying 'Total' and 'Avg' information.
> Is it possible to add a row above, spanning multiple columns similar to
> this?:
>
> | Widgets |
> +----------------+
> | Total | Avg |
>
> Thanks
> Bill
>
>
Eliyahu Goldin Guest
-
Bill Musgrave #3
Re: Two column header rows possible?
Thanks Eiliyahu, though I am not sure I understand.
When you said data row, did you mean add another datagridcontrol? If so how
do we get all the columns to align?
If not, maybe you can elaborate (any code would be helpful).
Also, would there be a way to do this utilizing the templatecolumn?
Thanks again.
Bill
"Eliyahu Goldin" <removemeegoldin@monarchmed.com> wrote in message
news:eeszDjb4EHA.3316@tk2msftngp13.phx.gbl...information.> It is not supported directly, but I can think of faking it by inserting
> another data row with subheaders into the data table. You can format in a
> special way making it look differently from data items. You can use
> PreRender event for formatting.
>
> Eliyahu
>
> "Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
> news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...> > We are currently creating output displaying 'Total' and 'Avg'>> > Is it possible to add a row above, spanning multiple columns similar to
> > this?:
> >
> > | Widgets |
> > +----------------+
> > | Total | Avg |
> >
> > Thanks
> > Bill
> >
> >
>
Bill Musgrave Guest
-
Ken Cox [Microsoft MVP] #4
Re: Two column header rows possible?
Hi Bill,
Below, I've pasted in some code that should help you create headers that
span. It is a little finicky but can be done. See the code comments for
details.
Let us know if this helps?
Ken
Microsoft MVP [ASP.NET]
Toronto
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"
ShowHeader="False">
<Columns>
<asp:BoundColumn DataField="Subject"></asp:BoundColumn>
<asp:BoundColumn DataField="Day"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
Dim dt As DataTable
Private Sub Page_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
DataGrid1.ShowHeader = True
DataGrid1.DataSource = CreateDataSource()
DataGrid1.DataBind()
End Sub
Private Sub DataGrid1_ItemDataBound _
(ByVal sender As Object, _
ByVal e As _
System.Web.UI.WebControls.DataGridItemEventArgs) _
Handles DataGrid1.ItemDataBound
' Add a second header with a flag button in it
' by Ken Cox Microsoft MVP [ASP.NET]
If e.Item.ItemType = ListItemType.Header Then
' Get the collection of cells from the grid
Dim tcells As TableCellCollection
' Create an imagebutton
Dim imgBtn As New ImageButton
' Assign the URL
imgBtn.ImageUrl = "http://www.gc.ca/images/flag.gif"
' Get the collection of existing cells so we can get a count
tcells = e.Item.Cells
' Create a new cell
Dim fcell As New TableCell
' Add the image button to the new table cell
fcell.Controls.Add(imgBtn)
' Span the cell to however many columns there are
fcell.ColumnSpan = tcells.Count
' Create a new header object
Dim dgItemHeader As New DataGridItem _
(0, 0, ListItemType.Header)
' Add the cell to the header
dgItemHeader.Cells.Add(fcell)
dgItemHeader.Visible = True
' Add the header to the datagrid
DataGrid1.Controls(0).Controls.Add(dgItemHeader)
End If
End Sub
Function CreateDataSource() As ICollection
' Create sample data for the DataList control.
dt = New DataTable
Dim dr As DataRow
' Define the columns of the table.
dt.Columns.Add(New DataColumn("Student", GetType(String)))
dt.Columns.Add(New DataColumn("Subject", GetType(String)))
dt.Columns.Add(New DataColumn("Day", GetType(String)))
' Populate the table with sample values.
dr = dt.NewRow
dr(0) = "Ben"
dr(1) = "English"
dr(2) = "Thursday"
dt.Rows.Add(dr)
dr = dt.NewRow
dr(0) = "Ben"
dr(1) = "Geology"
dr(2) = "Monday"
dt.Rows.Add(dr)
dr = dt.NewRow
dr(0) = "Ben"
dr(1) = "Physics"
dr(2) = "Tuesday"
dt.Rows.Add(dr)
Dim dv As DataView = New DataView(dt)
Return dv
End Function
"Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...> We are currently creating output displaying 'Total' and 'Avg' information.
> Is it possible to add a row above, spanning multiple columns similar to
> this?:
>
> | Widgets |
> +----------------+
> | Total | Avg |
>
> Thanks
> Bill
>
>Ken Cox [Microsoft MVP] Guest
-
Eliyahu Goldin #5
Re: Two column header rows possible?
Bill,
I mean adding another data row to the data table. When you bind the grid to
the table, the row should be rendered straight after the header.
Yes, template columns can be used. You can prepare HTML in ItemTemplate for
both subheader and normal data and, in ItemDataBound event, check on the
very first data row. If an item is the very first data row, populate HTML
for subheaders.
Eliyahu
"Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
news:Oniy7te4EHA.2124@TK2MSFTNGP15.phx.gbl...how> Thanks Eiliyahu, though I am not sure I understand.
>
> When you said data row, did you mean add another datagridcontrol? If soa> do we get all the columns to align?
>
> If not, maybe you can elaborate (any code would be helpful).
>
> Also, would there be a way to do this utilizing the templatecolumn?
>
> Thanks again.
> Bill
>
>
> "Eliyahu Goldin" <removemeegoldin@monarchmed.com> wrote in message
> news:eeszDjb4EHA.3316@tk2msftngp13.phx.gbl...> > It is not supported directly, but I can think of faking it by inserting
> > another data row with subheaders into the data table. You can format into> information.> > special way making it look differently from data items. You can use
> > PreRender event for formatting.
> >
> > Eliyahu
> >
> > "Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
> > news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...> > > We are currently creating output displaying 'Total' and 'Avg'> > > Is it possible to add a row above, spanning multiple columns similar>> >> > > this?:
> > >
> > > | Widgets |
> > > +----------------+
> > > | Total | Avg |
> > >
> > > Thanks
> > > Bill
> > >
> > >
> >
>
Eliyahu Goldin Guest
-
Bill Musgrave #6
Re: Two column header rows possible?
Ken thanks for your response, it helped tons.
Merry Christmas
Bill
"Ken Cox [Microsoft MVP]" <BANSPAMken_cox@sympatico.ca> wrote in message
news:O4vASCl4EHA.4004@tk2msftngp13.phx.gbl...information.> Hi Bill,
>
> Below, I've pasted in some code that should help you create headers that
> span. It is a little finicky but can be done. See the code comments for
> details.
>
> Let us know if this helps?
>
> Ken
> Microsoft MVP [ASP.NET]
> Toronto
>
>
> <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"
> ShowHeader="False">
> <Columns>
> <asp:BoundColumn DataField="Subject"></asp:BoundColumn>
> <asp:BoundColumn DataField="Day"></asp:BoundColumn>
> </Columns>
> </asp:DataGrid>
>
>
> Dim dt As DataTable
> Private Sub Page_Load _
> (ByVal sender As System.Object, _
> ByVal e As System.EventArgs) _
> Handles MyBase.Load
> DataGrid1.ShowHeader = True
> DataGrid1.DataSource = CreateDataSource()
> DataGrid1.DataBind()
> End Sub
> Private Sub DataGrid1_ItemDataBound _
> (ByVal sender As Object, _
> ByVal e As _
> System.Web.UI.WebControls.DataGridItemEventArgs) _
> Handles DataGrid1.ItemDataBound
> ' Add a second header with a flag button in it
> ' by Ken Cox Microsoft MVP [ASP.NET]
> If e.Item.ItemType = ListItemType.Header Then
> ' Get the collection of cells from the grid
> Dim tcells As TableCellCollection
> ' Create an imagebutton
> Dim imgBtn As New ImageButton
> ' Assign the URL
> imgBtn.ImageUrl = "http://www.gc.ca/images/flag.gif"
> ' Get the collection of existing cells so we can get a count
> tcells = e.Item.Cells
> ' Create a new cell
> Dim fcell As New TableCell
> ' Add the image button to the new table cell
> fcell.Controls.Add(imgBtn)
> ' Span the cell to however many columns there are
> fcell.ColumnSpan = tcells.Count
> ' Create a new header object
> Dim dgItemHeader As New DataGridItem _
> (0, 0, ListItemType.Header)
> ' Add the cell to the header
> dgItemHeader.Cells.Add(fcell)
> dgItemHeader.Visible = True
> ' Add the header to the datagrid
> DataGrid1.Controls(0).Controls.Add(dgItemHeader)
> End If
> End Sub
> Function CreateDataSource() As ICollection
> ' Create sample data for the DataList control.
> dt = New DataTable
> Dim dr As DataRow
>
> ' Define the columns of the table.
> dt.Columns.Add(New DataColumn("Student", GetType(String)))
> dt.Columns.Add(New DataColumn("Subject", GetType(String)))
> dt.Columns.Add(New DataColumn("Day", GetType(String)))
>
> ' Populate the table with sample values.
> dr = dt.NewRow
> dr(0) = "Ben"
> dr(1) = "English"
> dr(2) = "Thursday"
> dt.Rows.Add(dr)
> dr = dt.NewRow
> dr(0) = "Ben"
> dr(1) = "Geology"
> dr(2) = "Monday"
> dt.Rows.Add(dr)
> dr = dt.NewRow
> dr(0) = "Ben"
> dr(1) = "Physics"
> dr(2) = "Tuesday"
> dt.Rows.Add(dr)
> Dim dv As DataView = New DataView(dt)
> Return dv
> End Function
>
> "Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
> news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...> > We are currently creating output displaying 'Total' and 'Avg'>> > Is it possible to add a row above, spanning multiple columns similar to
> > this?:
> >
> > | Widgets |
> > +----------------+
> > | Total | Avg |
> >
> > Thanks
> > Bill
> >
> >
Bill Musgrave Guest
-
Bill Musgrave #7
Re: Two column header rows possible?
Eilyahu
Thanks for your time, we were finally able to get things working.
Merry Christmas
Bill
"Eliyahu Goldin" <removemeegoldin@monarchmed.com> wrote in message
news:Olsu3Ip4EHA.2964@TK2MSFTNGP15.phx.gbl...to> Bill,
>
> I mean adding another data row to the data table. When you bind the gridfor> the table, the row should be rendered straight after the header.
>
> Yes, template columns can be used. You can prepare HTML in ItemTemplateinserting> both subheader and normal data and, in ItemDataBound event, check on the
> very first data row. If an item is the very first data row, populate HTML
> for subheaders.
>
> Eliyahu
>
> "Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
> news:Oniy7te4EHA.2124@TK2MSFTNGP15.phx.gbl...> how> > Thanks Eiliyahu, though I am not sure I understand.
> >
> > When you said data row, did you mean add another datagridcontrol? If so> > do we get all the columns to align?
> >
> > If not, maybe you can elaborate (any code would be helpful).
> >
> > Also, would there be a way to do this utilizing the templatecolumn?
> >
> > Thanks again.
> > Bill
> >
> >
> > "Eliyahu Goldin" <removemeegoldin@monarchmed.com> wrote in message
> > news:eeszDjb4EHA.3316@tk2msftngp13.phx.gbl...> > > It is not supported directly, but I can think of faking it byin> > > another data row with subheaders into the data table. You can format> a> to> > information.> > > special way making it look differently from data items. You can use
> > > PreRender event for formatting.
> > >
> > > Eliyahu
> > >
> > > "Bill Musgrave" <Musgrave_BillNOSPA_M@emc.com> wrote in message
> > > news:%23D8fNnV4EHA.208@TK2MSFTNGP12.phx.gbl...
> > > > We are currently creating output displaying 'Total' and 'Avg'> > > > Is it possible to add a row above, spanning multiple columns similar>> >> > > > this?:
> > > >
> > > > | Widgets |
> > > > +----------------+
> > > > | Total | Avg |
> > > >
> > > > Thanks
> > > > Bill
> > > >
> > > >
> > >
> > >
> >
>
Bill Musgrave Guest



Reply With Quote

