合并Gridview 行

 
 #region 合并GridView中某列相同信息的行(单元格)
    /// <summary>
    /// 合并GridView中某列相同信息的行(单元格)
    /// </summary>
    /// <param name="GridView1">GridView</param>
    /// <param name="cellNum">第几列</param>
    public static void GroupRows(GridView GridView1, int intColNum, ArrayList list)
    {
        int i = 0, rowSpanNum = 1;


        for (int j = 0; j < intColNum; j++)
        {

            while (i < GridView1.Rows.Count - 1)
            {
                GridViewRow gvr = GridView1.Rows[i];
                for (++i; i < GridView1.Rows.Count; i++)
                {
                    GridViewRow gvrNext = GridView1.Rows[i];

                    //纵向相邻单元格的内容相同
                    //找出使用隐藏字段存储的值,这是关键3.
                    //sss = ((Label)gvr.Cells[j].FindControl("" + list[3].ToString() + "")).Text + ((Label)gvr.Cells[j].FindControl("" + list[0].ToString() + "")).Text;

                    if (j != 5)
                    {
                        if (((Label)gvr.Cells[j].FindControl("" + list[j].ToString() + "")).Text.Trim().ToString() == ((Label)gvrNext.Cells[j].FindControl("" + list[j].ToString() + "")).Text.Trim().ToString() && ((Label)gvr.Cells[j].FindControl("lbldxid")).Text.Trim().ToString() == ((Label)gvrNext.Cells[j].FindControl("lbldxid")).Text.Trim().ToString())
                        {
                            gvrNext.Cells[j].Visible = false;
                            rowSpanNum++;
                        }
                        else
                        {
                            gvr.Cells[j].RowSpan = rowSpanNum;
                            rowSpanNum = 1;
                            break;

                        }
                    }
                    else
                    {


                        if (list[5].ToString() == "txtpf")
                        {
                            if (((TextBox)gvr.Cells[j + 1].FindControl("txtpf")).Text.Trim().ToString() == ((TextBox)gvrNext.Cells[j + 1].FindControl("txtpf")).Text.Trim().ToString() && ((Label)gvr.Cells[j + 1].FindControl("lbldxid")).Text.Trim().ToString() == ((Label)gvrNext.Cells[j + 1].FindControl("lbldxid")).Text.Trim().ToString())
                            {
                                gvrNext.Cells[j + 1].Visible = false;
                                rowSpanNum++;
                            }
                            else
                            {
                                gvr.Cells[j + 1].RowSpan = rowSpanNum;
                                rowSpanNum = 1;
                                break;

                            }
                        }

                    }
                    if (i == GridView1.Rows.Count - 1)
                    {
                        if (j == 5)
                        {
                            gvr.Cells[j + 1].RowSpan = rowSpanNum;
                        }
                        else
                        {
                            gvr.Cells[j].RowSpan = rowSpanNum;
                        }


                    }
                }

            }
            i = 0;
            rowSpanNum = 1;


        }



    }
    #endregion
 
 
调用方法:

   ArrayList list = new ArrayList();                 list.Add("lbldxmc");                 list.Add("lblxxbt");                 list.Add("lblkhsm");                 list.Add("lblkhyq");                 list.Add("xxfs");                 list.Add("txtpf");                 BindDx();//绑定数据源

                GroupRows(GridView1, 6, list); //关键1,发出请求时合并显示第几列


效果图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值