public static void Gridview_RowSpan(System.Web.UI.WebControls.GridView gv)
    {
        //合并单元格
        for (int i = 0; i < gv.Rows.Count - 1; i++)
        {
            int colnum = 1;
            int j;
            for (j = i + 1; j < gv.Rows.Count; j++)
            {
                if (gv.Rows[i].Cells[0].Text == gv.Rows[j].Cells[0].Text)
                {
                    colnum++;
                    gv.Rows[i].Cells[0].RowSpan = colnum;
                    gv.Rows[j].Cells[0].Visible = false;
                    gv.Rows[i].Cells[1].RowSpan = colnum;
                    gv.Rows[j].Cells[1].Visible = false;
                    gv.Rows[i].Cells[2].RowSpan = colnum;
                    gv.Rows[j].Cells[2].Visible = false;
                    gv.Rows[i].Cells[3].RowSpan = colnum;
                    gv.Rows[j].Cells[3].Visible = false;
                    gv.Rows[i].Cells[4].RowSpan = colnum;
                    gv.Rows[j].Cells[4].Visible = false;
                    gv.Rows[i].Cells[5].RowSpan = colnum;
                    gv.Rows[j].Cells[5].Visible = false;
                    gv.Rows[i].Cells[6].RowSpan = colnum;
                    gv.Rows[j].Cells[6].Visible = false;
                    gv.Rows[i].Cells[7].RowSpan = colnum;
                    gv.Rows[j].Cells[7].Visible = false;
                    gv.Rows[i].Cells[8].RowSpan = colnum;
                    gv.Rows[j].Cells[8].Visible = false;
                }
                else
                    break;
            }
            i = j - 1;
        }用上面的函数合并内容相同的
但是如果分页时就无法合并了,得怎么实现的

解决方案 »

  1.   

    前台<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"   DataSourceID="ObjectDataSource1" >
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                    SortExpression="id" />
                <asp:BoundField DataField="model_name" HeaderText="model_name" SortExpression="model_name" />
                <asp:BoundField DataField="products" HeaderText="products" SortExpression="products" />
                <asp:BoundField DataField="model_num" HeaderText="model_num" SortExpression="model_num" />
                <asp:BoundField DataField="stage" HeaderText="stage" SortExpression="stage" />
                <asp:BoundField DataField="stage_unit" HeaderText="stage_unit" SortExpression="stage_unit" />
                <asp:BoundField DataField="customer" HeaderText="customer" SortExpression="customer" />
                <asp:BoundField DataField="loop_changer" HeaderText="loop_changer" SortExpression="loop_changer" />
                <asp:BoundField DataField="set_changer" HeaderText="set_changer" SortExpression="set_changer" />
                <asp:BoundField DataField="matrial_changer" HeaderText="matrial_changer" SortExpression="matrial_changer" />
                <asp:BoundField DataField="main_changer" HeaderText="main_changer" SortExpression="main_changer" />
                <asp:BoundField DataField="tech_changer" HeaderText="tech_changer" SortExpression="tech_changer" />
                <asp:BoundField DataField="update_empno" HeaderText="update_empno" SortExpression="update_empno" />
                <asp:BoundField DataField="update_time" HeaderText="update_time" SortExpression="update_time" />
                <asp:BoundField DataField="write_date" HeaderText="write_date" SortExpression="write_date" />
                <asp:BoundField DataField="jip_date" HeaderText="jip_date" SortExpression="jip_date" />
                <asp:BoundField DataField="pl_date" HeaderText="pl_date" SortExpression="pl_date" />
                <asp:BoundField DataField="pcb_date" HeaderText="pcb_date" SortExpression="pcb_date" />
                <asp:BoundField DataField="spl_date" HeaderText="spl_date" SortExpression="spl_date" />
                <asp:BoundField DataField="smt_date" HeaderText="smt_date" SortExpression="smt_date" />
                <asp:BoundField DataField="ft1_date" HeaderText="ft1_date" SortExpression="ft1_date" />
                <asp:BoundField DataField="bi_date" HeaderText="bi_date" SortExpression="bi_date" />
                <asp:BoundField DataField="ft2_date" HeaderText="ft2_date" SortExpression="ft2_date" />
                <asp:BoundField DataField="oqc_date" HeaderText="oqc_date" SortExpression="oqc_date" />
                <asp:BoundField DataField="dr_date" HeaderText="dr_date" SortExpression="dr_date" />
                <asp:BoundField DataField="finish_date" HeaderText="finish_date" SortExpression="finish_date" />
            </Columns>
        </asp:GridView>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
            SelectMethod="GetDataByView" TypeName="infoTableAdapters.JZ_INFOTableAdapter"></asp:ObjectDataSource>
    后台using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class main : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {   // bind();
            Gridview_RowSpan(GridView1);    }
       
        
      
        public static void Gridview_RowSpan(System.Web.UI.WebControls.GridView gv)
        {
            //合并单元格
            for (int i = 0; i < gv.Rows.Count - 1; i++)
            {
                int colnum = 1;
                int j;
                for (j = i + 1; j < gv.Rows.Count; j++)
                {
                    if (gv.Rows[i].Cells[0].Text == gv.Rows[j].Cells[0].Text)
                    {
                        colnum++;
                        gv.Rows[i].Cells[0].RowSpan = colnum;
                        gv.Rows[j].Cells[0].Visible = false;
                        gv.Rows[i].Cells[1].RowSpan = colnum;
                        gv.Rows[j].Cells[1].Visible = false;
                        gv.Rows[i].Cells[2].RowSpan = colnum;
                        gv.Rows[j].Cells[2].Visible = false;
                        gv.Rows[i].Cells[3].RowSpan = colnum;
                        gv.Rows[j].Cells[3].Visible = false;
                        gv.Rows[i].Cells[4].RowSpan = colnum;
                        gv.Rows[j].Cells[4].Visible = false;
                        gv.Rows[i].Cells[5].RowSpan = colnum;
                        gv.Rows[j].Cells[5].Visible = false;
                        gv.Rows[i].Cells[6].RowSpan = colnum;
                        gv.Rows[j].Cells[6].Visible = false;
                        gv.Rows[i].Cells[7].RowSpan = colnum;
                        gv.Rows[j].Cells[7].Visible = false;
                        gv.Rows[i].Cells[8].RowSpan = colnum;
                        gv.Rows[j].Cells[8].Visible = false;
                    }
                    else
                        break;
                }
                i = j - 1;
            }
        }}
    接着要实现分页得怎么写的
      

  2.   

    GridView合并相同内容 这一般是做报表,合并后建议就不要分页了如果分页就不要合并相同内容,因为相同的内容有可能会分布在两页上,甚至多页上,你就不好控制了
      

  3.   

    其实合并只是合并到一个table中,分页还是绑定这个table作为数据源就可以了!
    这个问题其实很简单,道理是一样的
      

  4.   

    把数据读到datatable里面
    用datatable作为数据源就可以了啊
    这样其他的分页代码都不用改的