ZC公司员工评分系统——前台排版算法

来源:互联网 发布:上瘾网络剧全集在线看 编辑:程序博客网 时间:2024/05/24 05:43
 

    教务系统的评教系统告一段落后,又开始做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


 

原创粉丝点击