合并GridView的表头

本文介绍了一种在ASP.NET中合并GridView表头的方法。通过重写RowCreated事件,自定义了表头显示,将多个表头合并为一个单元格。这种方法提高了表格的可读性和美观度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

合并GridView的表头:



<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:GridView runat="server" ID="GridView_Merge_Header" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="3px" CellPadding="2" ForeColor="Black" GridLines="None" BorderStyle="None" CellSpacing="2" Font-Names="Verdana" Font-Size="8pt" OnRowCreated="GridView_Merge_Header_RowCreated">
            
<FooterStyle BackColor="Tan" />
            
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
            
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
            
<HeaderStyle BackColor="Tan" Font-Bold="True" />
            
<AlternatingRowStyle BackColor="PaleGoldenrod" />
        
</asp:GridView>
    
</div>
    
</form>
</body>
</html>

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            GridView_Merge_Header.DataSource 
= GenerateDataSet();
            GridView_Merge_Header.DataBind();
        }

    }


    
private DataSet GenerateDataSet()
    
{
        DataSet ds
= new DataSet("test");
        ds.ReadXml(HttpRuntime.AppDomainAppPath 
+ "/Employee.xml");
        
return ds;
    }

    
protected void GridView_Merge_Header_RowCreated(object sender, GridViewRowEventArgs e)
    
{
        
if (e.Row.RowType == DataControlRowType.Header)
        
{                    
            
//Build custom header.
            GridView oGridView = (GridView)sender;
            GridViewRow oGridViewRow 
= new GridViewRow(00, DataControlRowType.Header, DataControlRowState.Insert);
            TableCell oTableCell 
= new TableCell();

            
//Add Department
            oTableCell.Text = "Department";
            oTableCell.ColumnSpan 
= 2;
            oGridViewRow.Cells.Add(oTableCell);

            
//Add Employee
            oTableCell = new TableCell();
            oTableCell.Text 
= "Employee";
            oTableCell.ColumnSpan 
= 3;
            oGridViewRow.Cells.Add(oTableCell);

            oGridView.Controls[
0].Controls.AddAt(0, oGridViewRow);
        }

    }

}


<?xml version="1.0" encoding="utf-8" ?>
<EmployeeDetails>
  
<Employee>
    
<Department>Development</Department>
    
<DepartID>2</DepartID>
    
<Name>Rajendran</Name>
    
<Age>25</Age>
    
<Location>USA</Location>
  
</Employee>
  
<Employee>
    
<Department>Development</Department>
    
<DepartID>2</DepartID>
    
<Name>Karthic</Name>
    
<Age>25</Age>
    
<Location>USA</Location>
  
</Employee>
  
<Employee>
    
<Department>Testing</Department>
    
<DepartID>2</DepartID>
    
<Name>Karthikeyan</Name>
    
<Age>25</Age>
    
<Location>India</Location>
  
</Employee>
  
<Employee>
    
<Department>Management</Department>
    
<DepartID>4</DepartID>
    
<Name>Vidhya</Name>
    
<Age>24</Age>
    
<Location>India</Location>
  
</Employee>
  
<Employee>
    
<Department>School</Department>
    
<DepartID>-1</DepartID>
    
<Name>Anandh</Name>
    
<Age>24</Age>
    
<Location>India</Location>
  
</Employee>
  
<Employee>
    
<Department>Mechanic</Department>
    
<DepartID>5</DepartID>
    
<Name>Magesh</Name>
    
<Age>25</Age>
    
<Location>India</Location>
  
</Employee>
  
<Employee>
    
<Department>Admin</Department>
    
<DepartID>7</DepartID>
    
<Name>Sabari</Name>
    
<Age>25</Age>
    
<Location>India</Location>
  
</Employee>
  
<Employee>
    
<Department>Human Resource</Department>
    
<DepartID>8</DepartID>
    
<Name>Nirmal</Name>
    
<Age>25</Age>
    
<Location>India</Location>
  
</Employee>
</EmployeeDetails>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值