zoukankan      html  css  js  c++  java
  • ZC公司员工评分系统——前台排版算法

     

        教务系统的评教系统告一段落后,又开始做ZC公司的员工评分系统,总体用时6天,下面总结一下这忙碌的6天中用到得技术上的东西。

    前台具体评分界面排版,需要的算法,关键是注意边界行的效果实现。

           GridView界面:

        

    	GroupCol(gvDetail, 0);//合并第一列
            //GroupCol(gvDetail, 2);//合并第三列
            #region //从第几行到第几行合并
            int bCol = 0;
            string rowText = gvDetail.Rows[0].Cells[0].Text.ToString();
    
            for (int i = 0; i < gvDetail.Rows.Count + 1; i++)
            {
                if (i == gvDetail.Rows.Count)//注意边界行,因为它的规律和其他行不一样,所以单拿出来
                {
                    GroupCol(gvDetail, 3, bCol, i);
                    GroupCol(gvDetail, 2, bCol, i);
                    return;
                }
                if (gvDetail.Rows[i].Cells[0].Text != rowText)
                {
                    rowText = gvDetail.Rows[i].Cells[0].Text;
                    GroupCol(gvDetail, 3, bCol, i);//从第几行到第几行合并
                    GroupCol(gvDetail, 2, bCol, i);
                    bCol = i;
                }
            }
            #endregion
    
            #region test 简单有限数据实验
            //GroupCol(gvDetail, 4, 0, 2);
            //GroupCol(gvDetail, 4, 2, 4);
            //GroupCol(gvDetail, 4, 4, 6);
            #endregion
        }
    
    
     #region 合并GridView中某列相同信息的行(单元格)
        /// <summary>   
        /// 合并GridView中某列相同信息的行(单元格)   
        /// </summary>   
        /// <param name="GridView1"></param>   
        /// <param name="cellNum"></param>   
        public static void GroupCol(GridView gridView, int cols)
        {
            if (gridView.Rows.Count < 1 || cols > gridView.Rows[0].Cells.Count - 1)
            {
                return;
            }
            TableCell oldTc = gridView.Rows[0].Cells[cols];
            for (int i = 1; i < gridView.Rows.Count; i++)
            {
                TableCell tc = gridView.Rows[i].Cells[cols];
                if (oldTc.Text == tc.Text)
                {
                    tc.Visible = false;
                    if (oldTc.RowSpan == 0)
                    {
                        oldTc.RowSpan = 1;
                    }
                    oldTc.RowSpan++;
                    oldTc.VerticalAlign = VerticalAlign.Middle;
                }
                else
                {
                    oldTc = tc;
                }
            }
        }
        #endregion
    
        #region 合并单元格 合并某一列中的某些行
        /// <summary>   
        /// 合并单元格 合并某一列中的某些行   
        /// </summary>   
        /// <param name="GridView1">GridView ID</param>   
        /// <param name="cellNum">列</param>   
        /// <param name="sRow">开始行</param>   
        /// <param name="eRow">结束行</param>   
        public static void GroupCol(GridView gridView, int cols, int sRow, int eRow)
        {
            if (gridView.Rows.Count < 1 || cols > gridView.Columns.Count - 1)
            {
                return;
            }
            TableCell oldTc = gridView.Rows[sRow].Cells[cols];
            for (int i = 1; i < eRow - sRow; i++)
            {
                TableCell tc = gridView.Rows[sRow + i].Cells[cols];
                tc.Visible = false;
    
                if (oldTc.RowSpan == 0)
                {
                    oldTc.RowSpan = 1;
                }
                oldTc.RowSpan++;
                oldTc.VerticalAlign = VerticalAlign.Middle;
            }
        }
        #endregion
    


     

  • 相关阅读:
    LC.225. Implement Stack using Queues(using two queues)
    LC.232. Implement Queue using Stacks(use two stacks)
    sort numbers with two stacks(many duplicates)
    LC.154. Find Minimum in Rotated Sorted Array II
    LC.81. Search in Rotated Sorted Array II
    LC.35.Search Insert Position
    前后端分离:(一)
    Redis基本使用(一)
    GIT篇章(二)
    GIT篇章(一)
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663988.html
Copyright © 2011-2022 走看看