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>