我大致想显示的格式是:
 表头1 | 表头2 | 表头3 |         分组1
 数据1 | 数据2 | 数据3 |
 数据1 | 数据2 | 数据3 |
         分组2
 数据1 | 数据2 | 数据3 |
 数据1 | 数据2 | 数据3 |用DataGrid做.....
数据和分组的信息是在数据库里面读出来的....
请问高手们有什么放按么?求指教...谢谢....

解决方案 »

  1.   

    在sql语句中先分组,然后再绑定
      

  2.   

    look like you need nested repeaters or datalists, see an example HOW TO:使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
    http://support.microsoft.com/kb/306154/zh-cn
      

  3.   

    lovecherry的blog上有个这样的示例,可以参考下。
      

  4.   

    sql 就可以分组了,帮定就行了
      

  5.   

    数据在tb01中'data',分组信息在tb02中'sa','saNo',在tb01中有对应的'saNo'和tb02对应,
    究竟sql怎么写呢?在sql里面分好组后直接绑定到DataGrid中就行了么?
      

  6.   

    数据在tb01中'data',分组信息在tb02中'sa','saNo',在tb01中有对应的'saNo'和tb02对应,
    究竟sql怎么写呢?在sql里面分好组后直接绑定到DataGrid中就行了么?
      

  7.   

    给出大致的数据结构..希望大家帮帮忙啊!!表tb01 :  data  saNO    表tb02 :  sa    saNO
              数据1   1              分组1   1
              数据2   3              分组2   2
              数据3   1              分组3   3
              数据4   2              
              数据5   3我想要的效果就是:
           分组1
       数据1
       数据3
           分组2
       数据4
           分组3
       数据2
       数据5
      

  8.   

    like I said, use nested DataLists or Repeaters, for example<%@ Import Namespace="System.Data" %>
    <script language="C#" runat="server">string RelationName = "sa";void Page_Load(object sender, EventArgs e)
    {
     if (!IsPostBack)
     {

    DataSet ds = new DataSet();  //在这里装载ds,下面示范例子用编程方式生成DataSet,你大概需要用DataAdapter.Fill ds.Tables.Add(GetT1());
    ds.Tables.Add(GetT2()); ds.Relations.Add(RelationName ,ds.Tables[0].Columns["saNO"],ds.Tables[1].Columns["saNO"]); DataList1.DataSource = ds.Tables[0].DefaultView;
    DataList1.DataBind();

     }
    }
    DataTable GetT1()
    {
      DataTable dt = new DataTable("TABLE");
      dt.Columns.Add("sa",typeof(string));
      dt.Columns.Add("saNO",typeof(int));  for (int i=1; i<=3; i++)
      {
    DataRow dr = dt.NewRow();
    dr["sa"] = "分组" + i.ToString();
    dr["saNO"] = i;
    dt.Rows.Add(dr);
      }  return dt;
    }
    DataTable GetT2()
    {
      DataTable dt = new DataTable("TABLE1");
      dt.Columns.Add("data",typeof(string));
      dt.Columns.Add("saNO",typeof(int));  int[] sns = {1,3,1,2,3};  for (int i=0; i< sns.Length; i++)
      {
    DataRow dr = dt.NewRow();
    dr["data"] = "数据" + (i+1).ToString();
    dr["saNO"] = sns[i];
    dt.Rows.Add(dr);
      }  return dt;
    }</script>
    <form runat="server">
    <asp:DataList id="DataList1" runat="server" >
     <ItemTemplate>
      <%# DataBinder.Eval(Container.DataItem,"sa") %>
      <asp:DataList id="DataList2" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows(RelationName)%>'
    RepeatColumns="3" RepeatDirection="Horizontal"
    >
      <ItemTemplate>
    <%# ((DataRow)Container.DataItem)["data"] %>
      </ItemTemplate>
    </asp:DataList>
     </ItemTemplate>
    </asp:DataList>
    <asp:Button id="btn" runat="server" Text="Refresh" />
    </form>
      

  9.   

    我今天刚做了一个统计数据的,比你的还麻烦,我是用Table做的,Table可以实现任意格式
    建议你也用Table 做吧,DataGrid功能强大,但是也有局限性,表格最灵活,只要实现就可以啦
      

  10.   

    to saucer(思归): 
    请问这几句是什么意思呢?作用是什么啊?谢谢!!!
    <%# DataBinder.Eval(Container.DataItem,"sa") %>
    <%# ((DataRowView)Container.DataItem).Row.GetChildRows(RelationName)%>
    <%# ((DataRow)Container.DataItem)["data"] %>
      

  11.   

    those are simple databinding, suggest you read QuickStart tutorial first, for examplehttp://chs.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx