創建複雜表頭的表格

GridView的功能雖然強大,但在創建複雜表頭報表時卻顯得遜色許多。此時我們應該想起另外一個控件:Repeater。下面是Repeater的結構:
複製  保存
<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
    </HeaderTemplate>
    <ItemTemplate>
    </ItemTemplate>
    <AlternatingItemTemplate>
    </AlternatingItemTemplate>
    <FooterTemplate>
    </FooterTemplate>
</asp:Repeater>

顧名思義,HeaderTemplate爲表頭模板,ItemTemplate爲可重複的項,AlternatingItemTemplate爲可重複交替項,FooterTemplate爲註腳部部分。 
下面給出示例:
單擊顯示全圖,Ctrl+滾輪縮放圖片
1. 前臺代碼:
複製  保存
<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
        <table border="1" align="center" width="100%" bordercolorlight="#a9a9a9" bordercolordark="#ffffff"
            cellspacing="0" cellpadding="1" bordercolor="#a9a9a9" style="text-align: center;">
            <tr bgcolor="#B5DBFF">
                <td rowspan="2" style="width: 100px">
                    波段</td>
                <td rowspan="2" style="width: 100px">
                    時段</td>
                <td colspan="3" style="height: 17px;">
                    第一部分</td>
                <td colspan="3" style="height: 17px;">
                    第二部分</td>
                <td rowspan="2" style="width: 100px">
                    合計</td>
            </tr>
            <tr bgcolor="#B5DBFF">
                <td style="width: 100px; height: 17px;"></td>
                <td style="width: 100px; height: 17px;"></td>
                <td style="width: 100px; height: 17px;"></td>
                <td style="width: 100px; height: 17px;"></td>
                <td style="width: 100px; height: 17px;"></td>
                <td style="width: 100px; height: 17px;"></td>
            </tr>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td style="width: 100px">
                <%# Eval("ChannelID") %>
            </td>
            <td style="width: 100px">
                <%# Eval("Time")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Monday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Tuesday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Wednesday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Thursday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Friday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Saturday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Sunday")%>
            </td>
        </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
        <tr style="background-color: WhiteSmoke;">
            <td style="width: 100px">
                <%# Eval("ChannelID") %>
            </td>
            <td style="width: 100px">
                <%# Eval("Time")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Monday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Tuesday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Wednesday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Thursday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Friday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Saturday")%>
            </td>
            <td style="width: 100px">
                <%# Eval("Sunday")%>
            </td>
        </tr>
    </AlternatingItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>
<cc1:WebPager ID="WebPager1" runat="server" PagerStyle="NextPrev" ControlToPaginate="Repeater1"
    ItemsPerPage="24" OnPageIndexChanged="WebPager1_PageIndexChanged" />

2. 後臺代碼:
複製  保存
#region Page事件
DataTest.BLL.GetData myBiz = new DataTest.BLL.GetData();
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        GetData();
        BindGrid();
    }
}
#endregion

#region Repeater

#region 數據綁定
/// <summary>
/// 獲取數據
/// </summary>
protected void GetData()
{
    this.DataSource = myBiz.GetOrderDetails("RM_Clocks"); ;
}

/// <summary>
/// GridView 數據綁定
/// </summary>
private void BindGrid()
{
    WebPager1.DataSource = this.DataSource;
    WebPager1.DataBind();
}
#endregion

#region 分頁
protected void WebPager1_PageIndexChanged(object sender, wf.WebPager.PageChangedEventArgs e)
{
    WebPager1.CurrentPageIndex = e.NewPageIndex;
    WebPager1.DataSource = this.DataSource;
    WebPager1.DataBind();
}
#endregion

#endregion
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章