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
    


     

  • 相关阅读:
    C#发送邮件的实现实例解析
    抄录一下别人的经验
    centos学习一
    关于百度地图API批量转换成坐标的方法
    js和PHP等脚本语言for循环和if语句里面定义变量的作用域
    关于js中去取数组中的重复字符串
    关于handler返回的数据处理
    通过定义任务委托的方法处理 action
    关于点击按钮图片左右切换的随笔
    关于网站内容分享到新浪微博等的代码
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663988.html
Copyright © 2011-2022 走看看