asp.net动态生成table课表

 #region 生成课表
        /// <summary>
        /// 生成课表
        /// </summary>
        /// <param name="p_intAmCount">每天上午或下午的节数</param>
        /// <param name="p_intWeekDayCount">每周上课的天数</param>
        /// <param name="p_intStartRowNum">每天从第几节开始生成课表</param>
        /// <param name="p_table">需要装载课时的Table</param>
        /// <param name="p_strAmOrPm">课表前面要显示的文字一般为“上午”“下午”</param>
        private void SetAmCurShe(int p_intAmCount, int p_intWeekDayCount,int p_intStartRowNum,ref Table p_table,string p_strAmOrPm)
        {
            bool bol_SetRowSpan = false;
            int int_TotalRow=p_intAmCount + p_intStartRowNum;
            //行循环
            for (int intRow = p_intStartRowNum; intRow < int_TotalRow; intRow++)
            {
                TableRow tblr = new TableRow();
                tblr.ID = "tr_" + intRow;
                //列循环
                for (int intCell = 0; intCell < 2 + p_intWeekDayCount; intCell++)
                {
                    TableCell tblc = new TableCell();
                    tblc.BorderColor = System.Drawing.Color.Gray;
                    tblc.BorderStyle = BorderStyle.Solid;
                    tblc.BorderWidth = 1;
                    //判断是否是第一列
                    if (intCell == 0 && !bol_SetRowSpan)
                    {
                        tblc.RowSpan = p_intAmCount;
                        tblc.ID = "tc_" + intRow + "_" + intCell;
                        tblc.Text = p_strAmOrPm;
                        bol_SetRowSpan = true;
                        tblr.Cells.Add(tblc);
                        tblc.Width = 20;
                    }
                    //判断是否是第二列
                    else if (intCell == 1)
                    {
                        tblc.ID = "tc_" + intRow + "_" + intCell;
                        tblc.Text = intRow.ToString();
                        tblr.Cells.Add(tblc);
                        tblc.Width = 30;
                    }
                    //判断是否是其它列
                    else if(intCell !=0)
                    {
                        tblc.ID = "tc_" + intRow + "_" + intCell;
                        //========动态生成按钮控件===============
                        Button btnNew = new Button();
                        btnNew.BorderStyle = BorderStyle.Inset;
                        btnNew.BorderWidth = 0;
                        btnNew.BackColor = System.Drawing.Color.Transparent;
                        btnNew.Click += new EventHandler(btnNew_Click);
                        btnNew.ID = "btn_"+intRow +"_"+(intCell-1 );
                        btnNew.Width = 120;
                        btnNew.Height = 40;
                        //btnNew.OnClientClick = "btnNew_Click";
                        //btnNew.Attributes["type"]="button";
                        btnNew.Text = " ";
                        btnNew.Style.Value = "cursor:hand;";
                        //=========================================
                        tblc.Controls.Add(btnNew);
                        tblr.Cells.Add(tblc);
                    }
                  
                }
                p_table.Rows.Add(tblr);
            }
        }
        #endregion

#region 动态生成课表表头
        /// <summary>
        /// 动态生成课表表头
        /// </summary>
        /// <param name="p_intWeekDayCount">每周上课的天数</param>
        /// <param name="p_table">需要装载课时的Table</param>
        private void SetCurSheTitle(int p_intWeekDayCount,ref Table p_table)
        {
            TableRow tblr = new TableRow();
            tblr.ID = "tr_0";
            //列循环
            for (int intCell = 0; intCell < 1 + p_intWeekDayCount; intCell++)
            {
                TableCell tblc = new TableCell();
                tblc.BorderColor = System.Drawing.Color.Gray;
                tblc.BorderStyle = BorderStyle.Solid;
                tblc.BorderWidth = 1;
                //是否是第一列
                if (intCell == 0)
                {
                    tblc.ColumnSpan = 2;
                    tblc.Text = "排";
                    tblc.ID = "tc_" + 0 + "_" + intCell;
                    tblc.BackColor = System.Drawing.Color.DarkGray;
                }
                else
                {
                    //设置其他列的标题
                    string str_WeekDay = DateTimeHelper.GetWeekDayByNumber(intCell);
                    tblc.Text = str_WeekDay;
                    tblc.ID = "tc_" + 0 + "_" + intCell;
                    tblc.ForeColor = System.Drawing.Color.WhiteSmoke;
                    tblc.BackColor = System.Drawing.Color.DarkBlue;
                }
                tblr.Cells.Add(tblc);
            }
            p_table.Rows.Add(tblr);
        }
        #endregion

        #region 设置课程表
        private void setCurSheInfo()
        {
            int int_WeekDayCount = 5;
            int int_AmCount = 4;
            int int_PmCount = 3;
            if (dropTerm.SelectedIndex != -1)
            {
                DataSet ds_CourseParameter = new DataSet();
                ds_CourseParameter = TeachMgmt.getCourseParameter(CurrentSchoolId.ToString(), dropTerm.SelectedValue);
                if (ds_CourseParameter.Tables.Count != 0 && ds_CourseParameter.Tables[0].Rows.Count != 0)
                {
                    int_WeekDayCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["WEEK_NUM_DAY"].ToString());
                     int_AmCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["AM_COUNT"].ToString());
                     int_PmCount = int.Parse(ds_CourseParameter.Tables[0].Rows[0]["PM_COUNT"].ToString());
                }
            }
            int_WeekDayCount = (int_WeekDayCount > 7 ? 7 : int_WeekDayCount);
            //生成课程表表头
            SetCurSheTitle(int_WeekDayCount, ref tabCurShe);
            //生成上午课表
            SetAmCurShe(int_AmCount, int_WeekDayCount, 1, ref tabCurShe, "上午");
            //生成下午课表
            SetAmCurShe(int_PmCount, int_WeekDayCount, int_AmCount + 1, ref tabCurShe, "下午");

        }
        #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值