GridView自定義表頭、複合表頭、綁定

1、自定義表頭

//自定義表頭
protected void create(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        TableCellCollection tcHeader = e.Row.Cells;
        //清除自動生成的表頭
        tcHeader.Clear();

        //查詢數據庫字段生成表頭
        StringBuilder strSQL = new StringBuilder();
        strSQL.Clear();
        strSQL.Append("select name from syscolumns where id = object_id(N'data_table');");
        string strsql = strSQL.ToString();
        DataTable dt = DB.GetDataBySQL(strsql);

        //自動添加表頭
        int count = dt.Rows.Count;
        for (int i = 0; i < count; i++)
        {
            string strdt = dt.Rows[i][0].ToString();
            tcHeader.Add(new TableHeaderCell());
            tcHeader[i].Text = strdt;
        }
    }
}

2、複合表頭

    //複合表頭
    protected void create(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            TableCellCollection tcHeader = e.Row.Cells;
            //清除自動生成的表頭
            tcHeader.Clear();

            tcHeader.Add(new TableHeaderCell());
            tcHeader[0].RowSpan = 2;
            tcHeader[0].Text = "姓名";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[1].RowSpan = 2;
            tcHeader[1].Text = "班級";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[2].ColumnSpan = 3;
            tcHeader[2].Text = "成績";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[3].RowSpan = 2;
            tcHeader[3].Text = "總排名</th></tr><tr>";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[4].Text = "語文";
            tcHeader[4].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E");     //設置單元格背景顏色

            tcHeader.Add(new TableHeaderCell()); 
            tcHeader[5].Text = "數學";
            tcHeader[5].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E");     //設置單元格背景顏色

            tcHeader.Add(new TableHeaderCell()); 
            tcHeader[6].Text = "英語"; 
            tcHeader[6].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E"); //設置單元格背景顏色 
        }
    }


3、數據綁定

    //GridView內容綁定
    public void GridViewBind()
    {
        StringBuilder strSQL = new StringBuilder();
        strSQL.Clear();
        strSQL.Append("select * from data_table");
        string strsql = strSQL.ToString();
        GridView1.DataSource = DB.GetDataBySQL(strsql);
        GridView1.DataBind();

    }

前臺頁面

方法一:

<asp:GridView runat="server" CssClass="dropdownlist" ID="GridView1" AutoGenerateColumns="false" CellPadding="4" Width="100%" ForeColor="#333333" GridLines="Both" AllowPaging="True" RowStyle-HorizontalAlign="Center" OnRowCreated="create">
     <Columns>
	 <asp:BoundField DataField="姓名" HeaderText="姓名" />
	 <asp:BoundField DataField="班級" HeaderText="班級" />
	 <asp:BoundField DataField="語文" HeaderText="語文" />
	 <asp:BoundField DataField="數學" HeaderText="數學" />
	 <asp:BoundField DataField="英語" HeaderText="英語" />
	 <asp:BoundField DataField="總排名" HeaderText="總排名" />
     </Columns>
	
     <%--定義表頭的樣式屬性--%>
     <HeaderStyle BackColor="#1CB89E" HorizontalAlign="Center" />
     <%--定義表中的行的樣式屬性--%>
     <RowStyle Font-Size="14px" BackColor="#5BD5C1" />
     <%--定義表中每隔一行的樣式屬性--%>
     <AlternatingRowStyle BackColor="#e6e6e6" />

</asp:GridView>


方法二:

<asp:GridView runat="server" CssClass="dropdownlist" ID="GridView1" AutoGenerateColumns="false" CellPadding="4" Width="100%" ForeColor="#333333" GridLines="Both" AllowPaging="True" RowStyle-HorizontalAlign="Center" OnRowCreated="create">
    <Columns>
	<asp:TemplateField>
	     <HeaderTemplate>姓名</HeaderTemplate>
	     <ItemTemplate><%# Eval("姓名") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>班級</HeaderTemplate>
	     <ItemTemplate><%# Eval("班級") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>語文</HeaderTemplate>
	     <ItemTemplate><%# Eval("語文") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>數學</HeaderTemplate>
	     <ItemTemplate><%# Eval("數學") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>英語</HeaderTemplate>
	     <ItemTemplate><%# Eval("英語") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>總排名</HeaderTemplate>
	     <ItemTemplate><%# Eval("總排名") %> </ItemTemplate>
	</asp:TemplateField>
    </Columns>
	
    <%--定義表頭的樣式屬性--%>
    <HeaderStyle BackColor="#1CB89E" HorizontalAlign="Center" />
    <%--定義表中的行的樣式屬性--%>
    <RowStyle Font-Size="14px" BackColor="#5BD5C1" />
    <%--定義表中每隔一行的樣式屬性--%>
    <AlternatingRowStyle BackColor="#e6e6e6" />

</asp:GridView>


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