using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using WebStudent.DLL;
using WebStudent.UserControl;
using System.Data.SqlClient;
using System.Collections.Generic;
using SMB.Data;
using SMB.WebControls.Common;
using SMB.Utility;
namespace WebStudent.Personal
{
public partial class StudentCreditScoreTwo : System.Web.UI.Page
{
User u;
//StuSetScoreOne stuScoreOne;
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
u = new User(Session["LoginID"]);
if (u.UserID == DBNull.Value.ToString() || u.UserID == "") Response.Redirect("~/Login.aspx");
u = (User)Session["LoginUser"];
dt = (DataTable)Session["StudentCreditScoreTwo.sour"];
if (!IsPostBack)
{
DisplayClass();
DisplayCourseByClass();
ucProj.InitControl();
}
JScript.SmarkScroll();
//Scroll();
}
protected override void OnInit(EventArgs e)
{
}
/// <summary>
/// 显示所登录用户的所授之班级资料
/// </summary>
/// <param name="UserID">用户ID</param>
protected void DisplayClassCourse()
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
sp.Add(new SqlParameter("@in_subid",ddlCourse.SelectedValue.ToString()));
DataTable dt = Utility.ExecuteQuery("sp_w01_read_score", sp);
Session["StudentCreditScoreTwo.sour"] = dt;
BindGridViewClassCourse(dt);
BindDDLProj(dt);
BindPhraseRemark(dt);
}
protected void BindGridViewClassCourse(DataTable dt)
{
GridViewClassCourse.DataSource = dt;
GridViewClassCourse.DataBind();
}
protected void BindPhraseRemark(DataTable dt)
{
foreach (GridViewRow gvr in GridViewClassCourse.Rows)
{
int i = gvr.DataItemIndex;
//ucPhraseComboBox ucPhraseRemark = (ucPhraseComboBox)gvr.FindControl("ucPhraseRemark");
//ucPhraseRemark.InitControl();
//ucPhraseRemark.ComboBox.Text = dt.Rows[i]["tmp_notice2"].ToString();
ucPhraseSelectorCommon ucPhraseSelectorCommon1 = (ucPhraseSelectorCommon)gvr.FindControl("ucPhraseSelectorCommon1");
ucPhraseSelectorCommon1.InitControl();
ucPhraseSelectorCommon1.PhraseName=dt.Rows[i]["tmp_notice2"].ToString();
}
}
/// <summary>
/// 根据次数绑定已存在数据的评测项目
/// </summary>
protected void BindDDLProj(DataTable dt)
{
if (dt.Rows.Count > 0)
{
ucProj.ComboBox.Text = dt.Rows[0]["tmp_score2_item"].ToString();
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
Teacher tea = (Teacher)Session["StudentCreditScoreTwo.Tea"];
FetchGridDate();
foreach (DataRow dr in dt.Rows)
{
try
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_stdkey", Convert.ToDecimal(dr["tmp_stdkey"])));
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
sp.Add(new SqlParameter("@in_subid", ddlCourse.SelectedValue.ToString()));
sp.Add(new SqlParameter("@in_group", dr["tmp_group"].ToString()));
sp.Add(new SqlParameter("@in_rate1", tea.Rate1));
sp.Add(new SqlParameter("@in_rate2", tea.Rate2));
sp.Add(new SqlParameter("@in_rate", tea.Rate));
sp.Add(new SqlParameter("@in_usual_rate", tea.OrdRate));
sp.Add(new SqlParameter("@in_score2_item", dr["tmp_score2_item"].ToString()));
sp.Add(new SqlParameter("@in_score2",Convert.ToDecimal(dr["tmp_Score2"])));
sp.Add(new SqlParameter("@in_kind",1));
sp.Add(new SqlParameter("@in_notice2", dr["tmp_notice2"]));
int i = Utility.ExecuteNonQuery("sp_w01_set_score2", sp);
}
catch (Exception ex)
{
//JScript.Alert(ex.Message);
ShowAlert(ex.Message);
}
}
DisplayClassCourse(); //重新刷新数据
//ShowMsg();
}
protected void FetchGridDate()
{
//stuScoreOne = new StuSetScoreOne();
string Class = ddlClass.SelectedValue.ToString();
string Course = ddlCourse.SelectedValue.ToString();
try
{
foreach (GridViewRow gvr in GridViewClassCourse.Rows)
{
int i = gvr.DataItemIndex;
TextBox txt = (TextBox)gvr.FindControl("txtScore");
//ucPhraseComboBox PhraseRemark = (ucPhraseComboBox)gvr.FindControl("ucPhraseRemark");
ucPhraseSelectorCommon ucPhraseSelectorCommon1 = (ucPhraseSelectorCommon)gvr.FindControl("ucPhraseSelectorCommon1");
dt.Rows[i]["tmp_score2_item"] = ucProj.ComboBox.Text;
dt.Rows[i]["tmp_Score2"] = CommOp.ToDecimalScore(txt.Text);
//dt.Rows[i]["tmp_notice2"] = PhraseRemark.ComboBox.Text;
dt.Rows[i]["tmp_notice2"] = ucPhraseSelectorCommon1.PhraseName;
}
}
catch (Exception ex)
{
//JScript.Alert(ex.Message);
ShowAlert(ex.Message);
}
}
#region --手动排序--
/// <summary>
/// 手动排序
/// </summary>
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection) ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
protected void GridViewClassCourse_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression,"DESC");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, "Asc");
}
}
private void SortGridView(string sortExpression,string direction)
{
DataTable dt = (DataTable)Session["StudentCreditScoreTwo.sour"];
DataView dv = new DataView(dt);
dv.Sort = sortExpression+" " +direction;
GridViewClassCourse.DataSource = dv;
GridViewClassCourse.DataBind();
}
#endregion --手动排序--
/// <summary>
/// 显示所登录用户的所授之班级资料
/// </summary>
/// <param name="UserID">用户ID</param>
protected void DisplayClass()
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_idno", u.UserID));
sp.Add(new SqlParameter("@in_tutor", 2));
DataTable dt = Utility.ExecuteQuery("sp_w01_read_teaclass", sp);
BindDDLClass(dt);
}
protected void BindDDLClass(DataTable dt)
{
ddlClass.DataSource = dt;
ddlClass.DataValueField = "cou_clsid";
ddlClass.DataTextField = "cls_fname";
ddlClass.DataBind();
}
/// <summary>
/// 根据班级来过滤出某班级的科目信息
/// </summary>
/// <param name="UserID">用户ID</param>
protected void DisplayCourseByClass()
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_idno", u.UserID));
sp.Add(new SqlParameter("@in_clsid ",ddlClass.SelectedValue.ToString()));
DataTable dt = Utility.ExecuteQuery("sp_w01_read_tecourse2", sp);
BindDDLCourse(dt);
}
protected void BindDDLCourse(DataTable dt)
{
ddlCourse.DataSource = dt;
ddlCourse.DataTextField = "sub_name";
ddlCourse.DataValueField = "tea_subid";
ddlCourse.DataBind();
}
/// <summary>
/// 根据所选班级自动更新后面的课程名称
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlClass_SelectedIndexChanged(object sender, EventArgs e)
{
DisplayCourseByClass();
}
/// <summary>
/// 查询/修改指定次数的评量成绩
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlType_SelectedIndexChanged(object sender, EventArgs e)
{
DisplayClassCourse();
}
/// <summary>
/// 选完课程后BIND数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlCourse_SelectedIndexChanged(object sender, EventArgs e)
{
InitClass();
DisplayClassCourse();
}
protected void InitClass()
{
Teacher tea = new Teacher(u.Year, u.Term, u.UserID, ddlClass.SelectedValue.ToString(), ddlCourse.SelectedValue.ToString());
Session["StudentCreditScoreTwo.Tea"] = tea;
}
/// <summary>
/// 传送注册组(与存档同,不同在@in_kind=2)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSend_Click(object sender, EventArgs e)
{
Teacher tea = (Teacher)Session["StudentCreditScoreTwo.Tea"];
FetchGridDate();
foreach (DataRow dr in dt.Rows)
{
try
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_stdkey", Convert.ToDecimal(dr["tmp_stdkey"])));
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_clsid", ddlClass.SelectedValue.ToString()));
sp.Add(new SqlParameter("@in_subid", ddlCourse.SelectedValue.ToString()));
sp.Add(new SqlParameter("@in_group", dr["tmp_group"].ToString()));
sp.Add(new SqlParameter("@in_rate1", tea.Rate1));
sp.Add(new SqlParameter("@in_rate2", tea.Rate2));
sp.Add(new SqlParameter("@in_rate", tea.Rate));
sp.Add(new SqlParameter("@in_usual_rate", tea.OrdRate));
sp.Add(new SqlParameter("@in_score2_item", dr["tmp_score2_item"].ToString()));
sp.Add(new SqlParameter("@in_score2", Convert.ToDecimal(dr["tmp_Score2"])));
sp.Add(new SqlParameter("@in_kind", 2));
sp.Add(new SqlParameter("@in_notice2", dr["tmp_notice2"]));
int i = Utility.ExecuteNonQuery("sp_w01_set_score2", sp);
}
catch (Exception ex)
{
//JScript.Alert(ex.Message);
ShowAlert(ex.Message);
}
}
}
protected void btnSch_Click(object sender, EventArgs e)
{
InitClass();
DisplayClassCourse();
ShowMsg();
}
protected void ShowMsg()
{
DataTable pl = (DataTable)Session["StudentCreditScoreTwo.sour"];
if (pl.Rows.Count > 0)
{
SetControl(pl);
}
else
{
btnSave.Enabled = false;
btnSend.Enabled = false;
}
}
protected void SetControl(DataTable dt)
{
Teacher tea = new Teacher(u.Year, u.Term, u.UserID, ddlClass.SelectedValue.ToString(), ddlCourse.SelectedValue.ToString());
Session["StudentCreditScoreTwo.Tea"] = tea;
DataRow dr;
DateTime dateStart, dateEnd;
try
{
List<SqlParameter> sp = new List<SqlParameter>();
sp.Add(new SqlParameter("@in_year", u.Year));
sp.Add(new SqlParameter("@in_term", u.Term));
sp.Add(new SqlParameter("@in_graid", tea.Graid));
dr = Utility.getRecord("sp_w01_read_webindt", sp);
dateStart = Convert.ToDateTime(dr["web_sdate"]);
dateEnd = Convert.ToDateTime(dr["web_edate"]);
if (dt.Rows[0]["tmp_score2_send"].ToString() != "N")
{
lblMsg.Text = "第二次评量成绩已递送注册组!";
btnSave.Enabled = false;
btnSend.Enabled = false;
}
else if (DateTime.Now < dateStart || DateTime.Now > dateEnd)
{
lblMsg.Text = "成绩输入期限已过!";
btnSave.Enabled = false;
btnSend.Enabled = false;
}
else
{
lblMsg.Text = "请于" + dateEnd + "前列印成绩递送单,签名交注册组!";
btnSave.Enabled = true;
btnSend.Enabled = true;
}
}
catch (Exception ex)
{
//JScript.Alert(ex.Message);
ShowAlert(ex.Message);
}
}
/// <summary>
/// 分数小于60红色字体显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridViewClassCourse_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txtScore = (TextBox)e.Row.Cells[8].FindControl("txtScore");
if (decimal.Parse(txtScore.Text) < 60)
{
txtScore.ForeColor = Color.Red;
}
}
}
/// <summary>
/// 抛出消息的方法
/// </summary>
/// <param name="ex"></param>
protected void ShowAlert(string ex)
{
string js = @"<Script language='JavaScript'> alert('{0}'); </Script>";
Page.ClientScript.RegisterClientScriptBlock(GetType(), "", string.Format(js, ex.Replace("'", "")));
return;
}
protected void Scroll()
{
string s2 = @"<script language=javascript'>
<!--
function getFileName()
{
var url = this.location.href;
var pos = url.lastIndexOf('/');
if(pos == -1)
pos = url.lastIndexOf('\\');
var filename = url.substr(pos+1);
return filename;
}
function fnLoad()
{
with(window.document.body)
{
addBehavior ('#default#userData');
load('scrollState' + getFileName());
scrollLeft = getAttribute('scrollLeft');
scrollTop = getAttribute('scrollTop');
}
}
function fnUnload()
{
with(window.document.body)
{
setAttribute('scrollLeft',scrollLeft);
setAttribute('scrollTop',scrollTop);
save('scrollState' + getFileName());
}
}
window.onload = fnLoad;
window.onunload = fnUnload;
-->
</script>";
//HttpContext.Current.Response.Write(s);
Page.ClientScript.RegisterClientScriptBlock(GetType(), "", s2);
}
}
}