Formatting templates in a datalist not working - please help

Hi There

I'm trying to format the display of my header in this datalist and I can't seem to apply header or item style to any templates, what am I doing wrong?


      <asp:DataList id="modify_listings"
   BorderColor="#DEBA84" BorderStyle="None"
   CellSpacing="2" BackColor="#DEBA84"
   CellPadding="3" GridLines="Both" BorderWidth="1px"
                        <AlternatingItemStyle Font-Underline="True" Font-Bold="True" BackColor="Red"></AlternatingItemStyle>
                        <ItemStyle Font-Names="Arial Narrow" Font-Bold="True"></ItemStyle>
                        <HeaderStyle Font-Bold="True" BorderColor="Green"></HeaderStyle>
<HeaderTemplate><tr><td>Modify</td><td>Price</td><td>Manufacturer</td><td>Listed Date</td><td>Listing</td><td>Status</td><td>Sold Items</td></tr></HeaderTemplate>
Who is Participating?
tovvenkiConnect With a Mentor Commented:
try like the following code snippet
<asp:DataList ID="dtlPublishers" Runat="server" ItemStyle-BorderWidth="1">
    <table width="760px" cellspacing="0" cellpadding="0">
      <tr class="tablehead">
        <th align="left" width="25%">Name</th>
        <th align="left" width="25%">City</th>
        <th align="left" width="25%">State</th>
        <th align="left" width="25%">Country</th>
    <table width="760px" cellspacing="0" cellpadding="0">
      <tr class="tablebody">
        <td width="25%"><%# DataBinder.Eval(Container.DataItem, "pub_name") %></td>
        <td width="25%"><%# DataBinder.Eval(Container.DataItem, "city") %></td>
        <td width="25%"><%# DataBinder.Eval(Container.DataItem, "State") %></td>
        <td width="25%"><%# DataBinder.Eval(Container.DataItem, "Country") %></td>

Hope that this helps you

What are you using to write your app? Most visual tools (Web Matrix, Visual Studio etc) have a built in facility for setting the styles on headers/footers etc, which is much easier than coding your own HTML.
crescendoConnect With a Mentor Commented:
Looking at what you've shown, there's no  </asp:DataList> tag. Was that omitted when you posted the question, or is it missing in your code?
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

AerosSagaConnect With a Mentor Commented:
just put the style sheet in the header of the aspx page, and set the css property of the datalist to the name of the stylesheet.


bullroutAuthor Commented:
Hi There,

The  </asp:DataList> is there I must have missed it with the cut & paste. I will try the style sheet idea, thanks.

bullroutAuthor Commented:
Hi There,

I am still having an issue the formatting of my datalist, how can I get the container items to appear as columns? Do I have to use a table row & td tags or are there specific properties that I can apply to the datalist in order to format it like below? I need to use the alternatingitem style in my list and it does not seem to work when I use table tags in the itemtemplates.


<tr><td> col1</td><td> col2</td><td> col3</td><td> col4</td></tr>
                                <asp:HyperLink id="HyperLink3" style="font-size:xxsmall" Text='Modify' NavigateUrl='<%# "edit_listings.aspx?ListingID=" & DataBinder.Eval(Container.DataItem, "ListingID")%>' runat="server" /><br />
                                <%# DataBinder.Eval(Container.DataItem, "listprice","{0:c}")%><br />
                                <%# DataBinder.Eval(Container.DataItem, "manufacturer") %><br />
                                <%# DataBinder.Eval(Container.DataItem, "listeddate","{0:dd-MM-yy}") %><br />
                                <%# DataBinder.Eval(Container.DataItem, "formname") %><br />
                                <%# DataBinder.Eval(Container.DataItem, "status") %><br />
                               <asp:HyperLink id="HyperLink1" style="font-size:xxsmall" Text='Item Sold?' NavigateUrl='<%# "processrequest.aspx?I=1&ListingID=" & DataBinder.Eval(Container.DataItem, "ListingID")%>' runat="server" />
bullroutAuthor Commented:
I ended up using a datagrid, I stupidly assumed that because I had custom paging that a datagrid did not support this method. I am only relatively new to asp .net and I guess the only way you learn is by doing!

Thanks for all the help anyway everyone.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.