在DataGrid里使用模块列,在该列的列头(标题)的内容里,适当的地方加上回来<BR>即可,如:
<HeaderTemplate>主题1<BR>主题1</HeaderTemplate>

解决方案 »

  1.   

    最偷懒的办法:在Template中吧header写成一个2X1的Table,只要协调一致,就象两行Header一样。<asp:datagrid id="DataGrid1" >
      <Columns>
        <asp:TemplateColumn HeaderText="V#">
          <HeaderTemplate>
           <table>
           <tr>
             <td>title row 1</td>
           </tr>
           <tr>
             <td>title row 2</td>
           </tr>
           </table>         
          </HeaderTemplate>
          <ItemTemplate>
            <asp:Label runat="server" ID='lblV000' Text='<%# DataBinder.Eval(Container, "DataItem.V000") %>' Font-Bold=True >
            </asp:Label>
          </ItemTemplate>
        </asp:TemplateColumn>
      

  2.   

    athossmth(athos) 的方法不错嘎
      

  3.   

    请大家继续:在form上显示如下格式的datagrid,其他控件也行,只要实现:
     ___________________________
    |________________|_________|
    |________|_______|_________|
    这是标题栏,如果解决此问题,另加一百分,谢谢!!
      

  4.   

    当然,也还有比较.net风格一点的办法,不过就未必值得那么做了。
      

  5.   

    请大家继续:在form上显示如下格式的datagrid,其他控件也行,只要实现:
     ___________________________
    |________________|_________|
    |________|_______|_________|
    这是标题栏,如果解决此问题,另加一百分,谢谢!!
    略进一步,就是孟子的方法,参考:创建跨多列、多行表头的DataGrid
    http://dotnet.aspx.cc/ShowDetail.aspx?id=0BF1E82C-A30A-4B5B-85B2-8DB339A41D37简单说,孟子把表分成了两部分:
    Table1是html的表,做表头之用,
    Table2是真正的DataGrid,再设计。这样,就可以比较灵活的自己定义了。
      

  6.   

    .net一点的办法呢,就比较罗嗦,要自己写一些东西。
      

  7.   

    一百行都没问题,使用模版列,在DataGrid中在放一个DataGrid.
      

  8.   

    参考:
    http://www.codeproject.com/aspnet/masterdetailgrid.asp
    需要自己从DataGrid类派生,控制其HTML的render。总结:如果是复杂的表头,如果不采用上面url给出的方法,大概只能用孟子的方法,或者仿照上面我的代码,定义HeaderTemplate。孟子的方法,缺点是在保证“列”的对齐的时候,有一点麻烦,毕竟,Table1和Table2是两个,而Table2的各列宽度,随着绑定的内容的不同,可能变化。HeaderTemplate的方法,缺点一是“行”的对齐有问题,因为绑定的时候,是分别绑定各列的Template Column的;二是,无法实现“跨列”的表头,理由也同一。如果我选,会推荐孟子的方法。