DataList - How to programmatically add a separator row

T

Tony_VBACoder

With ASP.NET 2.0 VB.NET, how do I:

I have a multi-column (4 columns) DataList control on my WebForm that
displays sports teams for our league. The data is grouped by Division Names
where there are 4 teams per Division. When the data is displayed on the Web
Page, it will be a 4x4 (4 columns by 4 rows) grid. What I need to be able to
do is, add a separator row whenever the Division Name changes and display
that Division name such that it spans across 4 columns.

I have a stored procedure that sorts the data by Division name, so the data
is already coming in sorted by Division. All I need to be able to do is
detect when the Division name changes, and then add a new row to the DataList.

I have done something similar using a GridView control and the "Protected
Overrides Sub Render(ByVal writer As HtmlTextWriter)" event, but I can't seem
to find any examples of how to do this with a DataList control.
 
P

PJ on Development

Hi, Tony

What I use to do in such cases is more a hack than proper code, but
I'd add on the ItemDataBound event check whenever the name of the
league changes and add a Literal control to the DataListItem that
would create the proper HTML to render the line.

Although some try and err might be required to achieve the desired
result.

Regards,

Paulo Santos
http://pjondevelopment.50webs.com
 
T

Tony_VBACoder

Could you provide me with some code on how to add a Literal Control that will
span across the columns? I have the following code in my DataList
(dlstOwners) control's ItemDataBound event that does the compare, and it
works, but I don't understand how to go about adding the Literal Control:

Private Sub dlstOwners_ItemDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataListItemEventArgs) Handles
dlstOwners.ItemDataBound
If (e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType =
ListItemType.AlternatingItem) Then
Dim sDiv As String = Convert.ToString((CType(e.Item.DataItem,
DataRowView)).Row.ItemArray(4).ToString())
' Compare it to the previous one
If sDiv <> msPrevDiv Then
' Add a new separator row spanning across the 4 columns that
will display the Division
' Store it in the holding variable
msPrevDiv = sDiv
End If
End If
End Sub
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top