黑 白 红 紫 粉   品种 
A001   A货品 小    1  2  1  1  1
             中    1  2  2  1  1    同
             大    3  2  1  1  2    类
A002   B货品 极小  1  2  3  4  5    产
             小    2  2  3  4  1    品
A003   C货品 大    1  2  3  3  1
                  黑 白 红 紫 粉  绿    品种 
A001   A货品 小    1  2  1  1  1  1
             中    1  2  2  1  1  1      同
             大    3  2  1  1  2  1      类
A002   B货品 极小  1  2  3  4  5  1      产
             小    2  2  3  4  1  1      品
A003   C货品 大    1  2  3  3  1  1颜色种类是会变化的。尺寸也是动态的。品种的话,如果是同类需要合并显示。现在头都大了。

解决方案 »

  1.   

    每个Repeater要嵌套一个Repeater,绑定的时候判断是否是同一类产品,如果是计算出这两类(或者多类)产品的尺寸个数,在Repeater的td设置rowspan=<%Eval("count")%>
      

  2.   

    计算和判断放在sql进行,前台绑定
      

  3.   

    产品号 颜色 /    尺寸          产品类别
                 极小 小 中  大    
    D260  黑     1   1  1  1
          白     1   1  1  1
           玫     1   1  2  1
           兰     1   1  1  1      同
           桔     1   1  1  1
           紫     1   2  1  1
           绿     1   1  1  1D261  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1      类
          兰     1   1  1  1
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
    D262  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1
          兰     1   1  1  1      产
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
    D263  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1      品
          兰     1   1  1  1
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
    D264  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1
          兰     1   1  1  1
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
    D265  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1
          兰     1   1  1  1
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
    D266  黑     1   1  1  1
          白     1   1  1  1
          玫     1   1  2  1
          兰     1   1  1  1
          桔     1   1  1  1
          紫     1   2  1  1
          绿     1   1  1  1
      

  4.   

    product_Sub表 id  尺寸 黑  白 梅 兰 桔 紫 绿 黄  青  灰  浅灰
    D260 极小 1   1 1  1  1 1  1 
    D260  小  1   1 1  1  1 2  1
    D260  中  1   1 2  1  1 1  1
    D261 极小 1   1 1  1  1 1  1 
    D261  小  1   1 1  1  1 2  1
    D261  中  1   1 2  1  1 1  1
    D262 极小 1   1 1  1  1 1  1 
    D262  小  1   1 1  1  1 2  1
    D262  中  1   1 2  1  1 1  1
    D263 极小 1   1 1  1  1 1  1 
    D263  小  1   1 1  1  1 2  1
    D263  中  1   1 2  1  1 1  1
    D264 极小 1   1 1  1  1 1  1 
    D264  小  1   1 1  1  1 2  1
    D264  中  1   1 2  1  1 1  1
    D265 极小 1   1 1  1  1 1  1 
    D265  小  1   1 1  1  1 2  1
    D265  中  1   1 2  1  1 1  1
    D266 极小 1   1 1  1  1 1  1 
    D266  小  1   1 1  1  1 2  1
    D266  中  1   1 2  1  1 1  1
    D267 极小     1 1     1 1  1  1   1
    D267  小      1 1     1 2  1  1      1
    D267  中      1 2     1 1  1  1        2
    D268 极小                        1   2  2 1
    D268  小  1                1  2   3  4
    D268  中  1   1       1       2   3     
      
      

  5.   

    看你的数据库表结构,使用Sql语句组装成类似的效果
    grid绑定就是了
      

  6.   

    product 表 与 product_sub 表是怎么关联的,如何知道是同类产品
      

  7.   

    表结构是这样的么?create table product_sub
    (
    id varchar(20),
    size varchar(20),
      黑 int,
        白 int, 
    梅 int,
        兰 int,
        桔 int, 
        紫 int,     
        绿 int,
        黄 int,  
        青 int, 
        灰 int, 
        浅灰 int
    )
      

  8.   

    insert into product_sub select 'D260','极小',1,1,1,1,1,1,1,null,null,null,null
    union all select 'D260','小',1,1,1,1,1,2,1,null,null,null,null
    union all select 'D260',  '中',  1 , 1, 2 , 1 , 1, 1,  1,null,null,null,null
    union all select 'D260',  '大',  1 , 1, 2 , 2 , 1, 1,  1,null,null,null,null
    union all select 'D261', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D261',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D261',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D262', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D262',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D262', '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D263', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D263',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D263',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D264', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D264',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D264',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D265', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D265',  '小',  1, 1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D265',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D266', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D266',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D266',  '中',  1, 1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D267', '极小', null,   1, 1,    1, 1,  1,  1,  1,null,null,null
    union all select 'D267',  '小',  null,    1, 1,    1, 2,  1,  1,null,      1,null,null
    union all select 'D267',  '中',  null,    1, 2,    1, 1,  1,  1,null,      2,null,null
    union all select 'D268', '极小', null,null,null,null,null,null,null, 1,  2,  2, 1
    union all select 'D268', '小',  1,null,null,null,null,                1,  2,  3,  4,null,null
    union all select 'D268',  '中',  1,  1,null,      1,null,      2,  3,null,null,null,null    
      

  9.   


    insert into product_sub select 'D260','极小',1,1,1,1,1,1,1,null,null,null,null
    union all select 'D260','小',1,1,1,1,1,2,1,null,null,null,null
    union all select 'D260',  '中',  1 , 1, 2 , 1 , 1, 1,  1,null,null,null,null
    union all select 'D260',  '大',  1 , 1, 2 , 2 , 1, 1,  1,null,null,null,null
    union all select 'D261', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D261',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D261',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D262', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D262',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D262', '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D263', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D263',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D263',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D264', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D264',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D264',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D265', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D265',  '小',  1, 1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D265',  '中',  1,  1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D266', '极小', 1,  1, 1,  1,  1, 1,  1,null,null,null,null
    union all select 'D266',  '小',  1,  1, 1,  1,  1, 2,  1,null,null,null,null
    union all select 'D266',  '中',  1, 1, 2,  1,  1, 1,  1,null,null,null,null
    union all select 'D267', '极小', null,   1, 1,    1, 1,  1,  1,  1,null,null,null
    union all select 'D267',  '小',  null,    1, 1,    1, 2,  1,  1,null,      1,null,null
    union all select 'D267',  '中',  null,    1, 2,    1, 1,  1,  1,null,      2,null,null
    union all select 'D268', '极小', null,null,null,null,null,null,null, 1,  2,  2, 1
    union all select 'D268', '小',  1,null,null,null,null,                1,  2,  3,  4,null,null
    union all select 'D268',  '中',  1,  1,null,      1,null,      2,  3,null,null,null,null    
      

  10.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:GridView ID="gv" runat="server" OnPreRender="gv_PreRender" OnRowDataBound="gv_RowDataBound"></asp:GridView>
        </div>
        </form>
    </body>
    </html>protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                using (SqlConnection con = new SqlConnection("server=.;uid=xxx;pwd=xxx;database=Test"))
                {
                    SqlDataAdapter da = new SqlDataAdapter("up_GetProduct_subInfo", con);
                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    DataSet ds = new DataSet();
                    da.Fill(ds, "Product_subInfo");
                    if (ds.Tables.Contains("Product_subInfo"))
                    {
                        gv.DataSource = ds.Tables["Product_subInfo"];
                        gv.DataBind();
                    }                
                }//end using block    
            }
        }    protected void gv_PreRender(object sender, EventArgs e)
        {
            GridView gv = sender as GridView;
            for (int rowIndex = gv.Rows.Count - 2; rowIndex >= 0; rowIndex--)
            {
                GridViewRow row = gv.Rows[rowIndex];
                GridViewRow previousRow = gv.Rows[rowIndex + 1];
                
                if (row.Cells[0].Text == previousRow.Cells[0].Text)
                {
                    row.Cells[0].RowSpan = previousRow.Cells[0].RowSpan < 2 ? 2 :
                                           previousRow.Cells[0].RowSpan + 1;
                    previousRow.Cells[0].Visible = false;
                }
                
            }    }    
      

  11.   

    为什么不用reportview?有分组功能呀
      

  12.   

    create proc up_GetProduct_subInfo
    as
    declare @sql varchar(8000)select @sql = isnull(@sql + ' union all ' , '' ) + ' select id ,[column] = ' + quotename(Name , '''') + ',size,'+Name+' as [Value]  from product_sub where '+Name+' is not null '
    from syscolumns 
    where name! = N'id' and name! = N'size' and ID = object_id('product_sub') order by colid asccreate table #t (id varchar(20),col varchar(20),size varchar(20),value int)
    exec('insert into #t select aa.* from  ('+@sql+') as aa ')set @sql=null
    select @sql=isnull(@sql+',','')+' isnull(cast(sum(case when t.size='''+t.size+''' then t.value end) as varchar(10)),'''') as ['+t.size+'] '
    from #t t group by sizeexec('select id [产品号],col [颜色],'+@sql+' from #t t group by id,col order by id')drop table #t