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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值