http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=0BF1E82C-A30A-4B5B-85B2-8DB339A41D37

解决方案 »

  1.   

    在执行了DataBind()后加入如下代码:
    Table t = (Table)DataGrid1.Controls[0];
    DataGridItem row = new DataGridItem(0, -1, ListItemType.Header);
    t.Rows.AddAt(0, row);
    TableCell cell1 = new TableCell();
    cell1.ColumnSpan = 2;
    cell1.Text = "大类1";
    row.Cells.Add(cell1);
    TableCell cell2 = new TableCell();
    cell2.Text = "大类2";
    row.Cells.Add(cell2);
      

  2.   

    <!--多维表头,使用Repeater控件,存成aspx文件--><%@ Page Language="C#" %>
    <html>
     <head>
        <script language="C#" runat="server">
           void Page_Load(Object Sender, EventArgs e) {
              if (!IsPostBack) {
                 ArrayList values = new ArrayList();
     
                 values.Add(new PositionData("Microsoft", "1","400"));
                 values.Add(new PositionData("Intel", "2","200"));
                 values.Add(new PositionData("Dell", "3","50"));
                 values.Add(new PositionData("Sun", "4","-150"));
     
                 Repeater1.DataSource = values;
                 Repeater1.DataBind();
              }
           }
     
           public class PositionData {
             
              private string name;
              private string ticker;
              private string money;
     
              public PositionData(string name, string ticker, string money) {
                 this.name = name;
                 this.ticker = ticker;
                 this.money = money;
              }
     
              public string Name {
                 get {
                    return name;
                 }
              }          public string Ticker {
                 get {
                    return ticker;
                 }
              }          public string Money {
                 get {
                    return money;
                 }
              }
           }
     
        </script>
     
     </head>
     <body>
     
        <h3>Repeater Example</h3>
     
        <form runat=server>
     
           <b>Repeater1:</b>
             
           <p>
             
           <asp:Repeater id=Repeater1 runat="server">
              <HeaderTemplate>
                 <table border=1>
                    <tr>
                       <td rowspan=2><b>Company</b></td>
                       <td colspan=2><b>财务排名</b></td>
                    </tr>
                    <tr>
                       <td><b>名次</b></td>
                       <td><b>盈利</b></td>
                    </tr>
              </HeaderTemplate>
                 
              <ItemTemplate>
                 <tr>
                    <td> <%# DataBinder.Eval(Container.DataItem, "Name") %> </td>
                    <td> <%# DataBinder.Eval(Container.DataItem, "Ticker") %> </td>
                    <td> <%# DataBinder.Eval(Container.DataItem, "Money") %> </td>
                 </tr>
              </ItemTemplate>
                 
              <FooterTemplate>
                 </table>
              </FooterTemplate>
                 
           </asp:Repeater>
           <p>
        </form>
     </body>
     </html>
      

  3.   

    1、DataGrid显示双层表头
    假设你的DataGrid有三列,现在想将前两列作为"大类1",第三列作为"大类2",现在,你可以在ItemDataBound事件中加入下面的代码:
    if (e.Item.ItemType == ListItemType.Header)
    {
    e.Item.Cells[0].ColumnSpan = 2;
    e.Item.Cells[0].Text = "大类1</td><td>大类2</td></tr><tr><td>" + e.Item.Cells[0].Text;
    }
    用这个方法可以为任意添加新行。
      

  4.   

    要注意
    e.Item.Cells[1].Visible=false;