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
    


     

  • 相关阅读:
    使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示
    SpringMVC与Struts2的对比
    事务不提交,也有可能写redo和数据文件
    14.4.1 InnoDB Startup Configuration
    SLB 权重问题
    perl 访问网站一些useragent的设置
    14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁
    nginx 区分pc和mobile 到不同的404页面
    dokcer 运行和进入容器
    docker 私有仓库查询
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663988.html
Copyright © 2011-2022 走看看