protected void Page_Load(object sender, EventArgs e) { //ScriptManager1.RegisterAsyncPostBackControl(this.DropDownList_Grade); ScriptManager1.RegisterAsyncPostBackControl(this.DropDownList_Course); ScriptManager1.RegisterAsyncPostBackControl(this.DropDownList_semester); ScriptManager1.RegisterAsyncPostBackControl(this.DropDownList_year); if (!IsPostBack) { if (!(LoginAndPermissionChecking.LoginChecking())) { Response.Redirect("/ErrorPage/error_NotLogin.aspx"); } if (!(LoginAndPermissionChecking.PermissionChecking(PermissionEnum.CourseMaster))) { Response.Redirect("/ErrorPage/error_DeniedPermission.aspx"); } Object o = Session["subjectGroupName"]; if (o == null) { Response.Redirect("/login/login.aspx"); } else { //Label_SubjectGroup.Text = Request.QueryString["subjectGroupName"].ToString(); Label_SubjectGroup.Text = Session["subjectGroupName"].ToString(); } ProvideDataForSelectSubject(); //页面刚刚载入的时候查询学科表中所有学科的对应课时数,并放置在一张学科课时表中,以待后面使用 string sql_MappingCourseNoAndCourseTime = "select CourseNo,CourseTime from gcgCourse"; DBManipulation dbm = new DBManipulation(); SqlDataReader dr = dbm.ExecuteQueryOnLine(sql_MappingCourseNoAndCourseTime, null); Dictionary <string, Byte> dict_CourseNo_CourseTime = new Dictionary <string, Byte>(); while (dr.Read()) { dict_CourseNo_CourseTime.Add(dr.GetString(0), dr.GetByte(1)); } dr.Close(); dbm.Close(); Cache["dict_CourseNo_CourseTime"] = dict_CourseNo_CourseTime; //同时计算所有老师的授课课时数,放在一个映射表中,以待后面使用 string sql_getTeacherSet = "select TeacherNo from temp_teacher"; DataSet ds = dbm.ExecuteQueryOffLine(sql_getTeacherSet, null); DataTable teacherTable = ds.Tables["defaultTable"]; Dictionary <string, int> dict_TeacherNo_CourseTime = new Dictionary <string, int>(); foreach (DataRow r in teacherTable.Rows) { string TeacherNo = r["TeacherNo"].ToString(); string sql_countTeacherTime = "select sum(CourseTime) from gcgLectureForm,temp_teacher,gcgCourse " + "where gcgLectureForm.TeacherNo = temp_teacher.TeacherNo " + "and gcgLectureForm.CourseNo = gcgCourse.CourseNo " + "and temp_teacher.TeacherNo = '" + TeacherNo + "'"; // DBManipulation dbm = new DBManipulation(); object obj = dbm.ExecuteScalar(sql_countTeacherTime, null); if (obj == null || obj.ToString() == "") {//还没有给这个老师安排带班 dict_TeacherNo_CourseTime[TeacherNo] = 0; } else { dict_TeacherNo_CourseTime[TeacherNo] = int.Parse(obj.ToString()); } } Cache["dict_TeacherNo_CourseTime"] = dict_TeacherNo_CourseTime; //保存每一个下拉菜单的索引值,方便下面进行课时计算 CreateTableBasedOnClass(); setDataForEachTeacherDropDownList(); foreach (DropDownList l in DropDownList_select) { Session[l.ID] = l.SelectedIndex;//使用对象的唯一标识符作为唯一ID保存 } } //debug1.Text = Request.QueryString["subjectGroupName"].ToString(); CreateTableBasedOnClass(); setDataForEachTeacherDropDownList(); // Page.MaintainScrollPositionOnPostBack = true;//刷新后滚动条回到之前的位置,但是会导致页面闪烁 }