合併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,發出請求時合併顯示第幾列


效果圖:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章