2013-08-28 35 views
0

我的要求時,重複頭在Datalist中是顯示在DataList如下如何重複Colums = 2

Header1  Header2   Header1  Header2   

1   Value 1   3   Value 3       

2   Value 2   4   Value 4 

但我無法重複的數據列表的標題部分。 我對DataList的完整代碼的東西是

 <asp:DataList ID="datalstProfileCount" runat="server" RepeatColumns="2" RepeatDirection="Horizontal" 
         RepeatLayout="Table" ShowHeader="true" OnItemDataBound="datalstProfileCount_ItemDataBound"> 
         <HeaderTemplate> 
          <table border="0" cellpadding="0" cellspacing="0" bordercolor="#e1e1e0" style="border: solid 1px #e1e1e0; 
           font-family: Segoe UI; font-size: 12px; font-weight: bold; width: 400px"> 
           <tr style="font-size: 13px; background: #ffedc2; border-bottom: 1px solid #eba602; 
            border-left: 1px solid #d6d6d6; font-weight: 600; font-size: 13px; padding: 10px 8px; 
            color: #c82124;"> 
            <td style="width: 80px; color: #c84241; text-align: center; padding: 6px"> 
             Name 
            </td> 
            <td style="width: 100px; color: #c84241; text-align: center; padding: 6px"> 
             Total Count 
            </td> 
            <td style="width: 100px; color: #c84241; text-align: center; padding: 6px"> 
             Active Members Count 
            </td> 
           </tr> 
          </table> 
         </HeaderTemplate> 
         <ItemTemplate> 
          <table border="0" cellpadding="0" cellspacing="0" bordercolor="#e1e1e0" style="border: solid 1px #e1e1e0; 
           font-family: Segoe UI; font-size: 12px; font-weight: bold; width: 400px; margin: -1px"> 
           <tr style="font-size: 12px; vertical-align: middle; color: #9d9d9c;"> 
            <td style="text-align: left; width: 80px; color: #333333; padding: 6px"> 
             <asp:Label ID="Label2" runat="server" Text='<%#Eval("Name") %>'></asp:Label> 
            </td> 
            <td style="text-align: right; width: 100px; color: #333333; padding: 6px"> 
             <asp:Label ID="lblTotalCount" runat="server" Text='<%#Eval("TotalCount") %>'></asp:Label> 
            </td> 
            <td style="text-align: right; width: 100px; color: #333333; padding: 6px"> 
             <asp:Label ID="lblActiveMembersCount" runat="server" Text='<%#Eval("ActiveMembersCount") %>'></asp:Label> 
            </td> 
           </tr> 
          </table> 
         </ItemTemplate> 
         <FooterTemplate> 
          <table border="0" cellpadding="0" cellspacing="0" style="padding-top: 20px" align="center"> 
           <tr> 
            <td style="font-size: 14px"> 
             Total Count: 
            </td> 
            <td style="padding-left: 10px"> 
             <asp:Label ID="lblProfileCount" runat="server" Text="" ForeColor="#C82124" Font-Size="14px"></asp:Label> 
            </td> 
           </tr> 
           <tr> 
            <td style="font-size: 14px"> 
             Active Members Count: 
            </td> 
            <td style="padding-left: 10px"> 
             <asp:Label ID="lblMemberCount" runat="server" Text="" ForeColor="#C82124" Font-Size="14px"></asp:Label> 
            </td> 
           </tr> 
          </table> 
         </FooterTemplate> 
        </asp:DataList> 

請你們誰幫我..謝謝你了... ...

回答

-1

頁眉永遠不會重演,使頭HTML作爲項目的一部分模板。根據.Net Controls的實現,標題是你的列表頭只會出現一次,然後你的項目模板將根據你的數據源中存在的項目數量重複,然後出現在頁腳中..

事情是這樣的:

<asp:DataList ID="datalstProfileCount" runat="server" RepeatColumns="2" RepeatDirection="Horizontal" RepeatLayout="Table" ShowHeader="true" OnItemDataBound="datalstProfileCount_ItemDataBound"> 
      <HeaderTemplate>   
      </HeaderTemplate> 
      <ItemTemplate> 
        //Header Section 
        //Data 
      </ItemTemplate> 
</asp:DataList> 

如果你仍然有一些困惑份額,報頭部分以及您在註釋中的數據部分的整個數據列表中,我將爲您提供更新的代碼..

更新回答:

<asp:DataList ID="datalstProfileCount" runat="server" RepeatColumns="2" RepeatDirection="Horizontal" 
     RepeatLayout="Table" ShowHeader="true" OnItemDataBound="datalstProfileCount_ItemDataBound"> 
     <HeaderTemplate> 
     </HeaderTemplate> 
     <ItemTemplate> 
      <table border="0" cellpadding="0" cellspacing="0" bordercolor="#e1e1e0" style="border: solid 1px #e1e1e0; 
       font-family: Segoe UI; font-size: 12px; font-weight: bold; width: 400px; margin: -1px"> 
       <tr style="font-size: 13px; background: #ffedc2; border-bottom: 1px solid #eba602; 
        border-left: 1px solid #d6d6d6; font-weight: 600; font-size: 13px; padding: 10px 8px; 
        color: #c82124; visibility: hidden;" id="trHeader" runat="server"> 
        <td style="width: 80px; color: #c84241; text-align: center; padding: 6px"> 
         Name 
        </td> 
        <td style="width: 100px; color: #c84241; text-align: center; padding: 6px"> 
         Total Count 
        </td> 
        <td style="width: 100px; color: #c84241; text-align: center; padding: 6px"> 
         Active Members Count 
        </td> 
       </tr> 
       <tr style="font-size: 12px; vertical-align: middle; color: #9d9d9c;"> 
        <td style="text-align: left; color: #333333; padding: 6px"> 
         <asp:Label ID="Label2" runat="server" Text='<%#Eval("Name") %>'></asp:Label> 
        </td> 
        <td style="text-align: right; color: #333333; padding: 6px"> 
         <asp:Label ID="lblTotalCount" runat="server" Text='<%#Eval("TotalCount") %>'></asp:Label> 
        </td> 
        <td style="text-align: right; color: #333333; padding: 6px"> 
         <asp:Label ID="lblActiveMembersCount" runat="server" Text='<%#Eval("ActiveMembersCount") %>'></asp:Label> 
        </td> 
       </tr> 
      </table> 
     </ItemTemplate> 
     <FooterTemplate> 
      <table border="0" cellpadding="0" cellspacing="0" style="padding-top: 20px" align="center"> 
          <tr> 
           <td style="font-size: 14px"> 
            Total Count: 
           </td> 
           <td style="padding-left: 10px"> 
            <asp:Label ID="lblProfileCount" runat="server" Text="" ForeColor="#C82124" Font-Size="14px"></asp:Label> 
           </td> 
          </tr> 
          <tr> 
           <td style="font-size: 14px"> 
            Active Members Count: 
           </td> 
           <td style="padding-left: 10px"> 
            <asp:Label ID="lblMemberCount" runat="server" Text="" ForeColor="#C82124" Font-Size="14px"></asp:Label> 
           </td> 
          </tr> 
      </table> 
     </FooterTemplate> 
</asp:DataList> 

在服務器端添加以下代碼:

protected void datalstProfileCount_ItemDataBound(Object sender, DataListItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     if(e.Item.ItemIndex <=1) 
     { 
      var headerRow = (System.Web.UI.HtmlControls.HtmlTableRow)e.Item.FindControl("trHeader"); 
      if(headerRow != null) 
      { 
       headerRow.Style.Add(HtmlTextWriterStyle.Visibility, ""); 
      } 
     } 
    } 
} 

你可能需要做的風格一定的變動,但也可以實現。

+0

我更新了我的問題 –

+0

見更新的答案,如果它可以幫助... –

+0

如果我們給這樣的那麼頭將重複每一行。 –

0

添加「如果datalistName.Items.Count> 1」代碼示例:

<HeaderTemplate> 
      <table> 
       <tr><td>Header1</td><td>Header2</td></tr> 
       <%If (data_list_name.Items.Count() > 1) {%> 
        <tr><td>Header1</td><td>Header2</td></tr> 
       <%}%> 
      </table> 
    </HeaderTemplate>