datagrid的行、列都可以进行合并的!!

解决方案 »

  1.   

    #region 在DATAGRID绑定列中合并内容相同的单元格及实现行色彩交替
    /// <summary>
    /// 在DATAGRID中合并内容相同的单元格及实现行色彩交替
    /// </summary>
    /// <param name="dg"></param>
    /// <param name="cellNo">合并Column的编号</param>
    /// <param name="firstColor">交替颜色</param>
    /// <param name="secondColor">交替颜色</param>
    private void SpanDataGrid(DataGrid dg,int cellNo,Color firstColor,Color secondColor)
    {
    int intSpan=1; //记录合并的行数
    int rowNo=0;//记录所在行号
    string strTemp; //记录标准比较值
    bool flag=false;//标记第一行
    dg.Items[0].BackColor=firstColor;
    strTemp=dg.Items[0].Cells[cellNo].Text;//初始化标准比较值
    //循环操作
    foreach(DataGridItem item in dg.Items)
    {
    if(strTemp==item.Cells[cellNo].Text)
    {
    if(flag)//判断是否是合并第一行
    {
    intSpan+=1; //增加合并的行数
    item.Cells[cellNo].Visible=false;//隐藏相同行
    //设置颜色
    if(dg.Items[item.ItemIndex-1].BackColor==firstColor)
    item.BackColor=secondColor;
    else
    item.BackColor=firstColor;
    }
    flag=true;
    }
    else
    {   strTemp=item.Cells[cellNo].Text;//替换标准比较值
    //设置颜色
    if(dg.Items[rowNo].BackColor==firstColor)
    item.BackColor=secondColor;
    else
    item.BackColor=firstColor;
    dg.Items[rowNo].Cells[cellNo].RowSpan=intSpan; //合并
    intSpan=1;//初始化
    item.Cells[cellNo].Visible=true;//显示
    rowNo=item.ItemIndex;//记录行号
    }
    }
    //最后一次合并
    dg.Items[rowNo].Cells[cellNo].RowSpan=intSpan;
    }
      

  2.   

    japy0312(麂皮) 强不过在数据源上把两条记录合并可能要方便一些
      

  3.   

    用两个:
    <TemplateColumn>
    <ItemTemplate>
    <table>
    <tr>
    <td>
    <img align="top" src='"路径"+<%# DataBinder.Eval(Container.DataItem, "字段1") %>' >
    </td>
    <td>
    <img align="top" src='"路径"+<%# DataBinder.Eval(Container.DataItem, "字段2") %>' >
    </td>
    </table>
    </ItemTemplate>
    </asp:TemplateColumn>or:
    用datalist:只要设置RepeatDirection="Horizontal" RepeatColumns="3"  即可
      

  4.   

    我也建议在数据源处直接把行合并,,然后再给DataGrid 赋值
      

  5.   

    电子相册你最好选择datalist~!