using System; using System.Data; using System.IO; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DeiNiu.wms.Logical; using DeiNiu.Utils; public partial class Lesson :PageBase { private Llesson _logic; protected void Page_Init() { PostBackTrigger trigger = new PostBackTrigger(); trigger.ControlID = Button1.UniqueID; // (Button)pnGridViewProcess.FindControl("btnExcel")).UniqueID.ToString(); // (UpdatePanel)(Page.Controls[0].FindControl("UpdatePanel1")).Triggers.Add(trigger); ((UpdatePanel)Master.FindControl("UpdatePanel1")).Triggers.Add(trigger); } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _logic = new Llesson(); Databound(); } SessionSeting(); } /***************************************** private methods ******************************************/ /// /// bound the query list. /// private void Databound() { //绑定课程分类 DataView dvDept = new DataView(_logic.GetAllActivedCategories()); TreeDept.SelectedNode.ChildNodes.Clear(); BindTree(TreeDept.SelectedNode.Value, TreeDept.SelectedNode, dvDept); //绑定课程分类树选中的课程分类下的所有课程数据 DataView dv = TreeDept.SelectedValue != "0" ? new DataView(_logic.GetLessonsByCat(Convert.ToInt32(TreeDept.SelectedValue))) : new DataView(_logic.GetAllActiveData().Tables[0]); GridView1.DataSource = dv; GridView1.SelectedIndex = -1; GridView1.DataBind(); UpdateSession(); // btnSubmit.Enabled = false; ClearDetail(); } private void SessionSeting() { if (IsPostBack) { _logic = (Llesson)Session[appScope.PagelevelObj]; } } private void UpdateSession() { Session[appScope.PagelevelObj] = _logic; } /// /// set data from shift object to page /// private void DetailDataBind() { DataDetail.Visible = true; txtName.Text = _logic.GetLesson.le_name; txtDesc.Text = _logic.GetLesson.le_desc; txtLocation.Text = _logic.GetLesson.le_location; // txtMaster.Text = _logic.GetLesson.le_master; txtXunFen.Text = _logic.GetLesson.le_xuefen.ToString(); txtTrainer.Text = _logic.GetLesson.le_trainer; // txtPasswd.Text = _logic.GetEmployee.em_passwd; txtStartDate.Text = _logic.GetLesson.le_startdate; txtEndDate.Text = _logic.GetLesson.le_enddate; } /************************************** protected methods (event listeners) ********************************/ protected void btnAddnew_Click(object sender, EventArgs e) { chgOperTxt(true); _logic.Initialize(); ClearDetail(); // DetailDataBind(); } protected void DetailsView1_PageIndexChanging(object sender, DetailsViewPageEventArgs e) { } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { chgOperTxt(false); if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[e.NewEditIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } Databound(); DetailDataBind(); } protected void btnSubmit_Click(object sender, EventArgs e) { SetDataBack(); //shifts id eq 0 means this is new one,to add; else an old one, to update int oper = 0; oper = _logic.GetLesson.ID > 0 ? _logic.GetLesson.Update() : _logic.GetLesson.Add(); ClearDetail(); Databound(); DataDetail.Visible = false; } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { if (GridView1 != null) { if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[e.RowIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } } _logic.GetLesson.Delete(); ClearDetail(); Databound(); } protected void GridView1_PageIndexChanged(object sender, EventArgs e) { } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; Databound(); //GridView1.DataSource = shiftLgc.getAllShifts().Tables[0]; // GridView1.DataBind(); } protected void GridView1_DataBinding(object sender, EventArgs e) { } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { } //reset the page protected void btnCancel_Click(object sender, EventArgs e) { _logic.Initialize(); Page_Load(this, e); } /***************************************** internal methods ********************************************/ /// /// set data from page to shift object /// private void SetDataBack() { // _logic.GetRole.operater = Session["CurrentUserID"].ToString(); todo: write a public method to handle operater,createtime,lastmodfied ... log info. // if (_logic.GetLesson.ID > 0) //{ // _logic.GetLesson.last_modified = DateTime.Now.ToString(); //} _logic.GetLesson.le_category = Convert.ToInt32(TreeDept.SelectedValue); _logic.GetLesson.le_name = txtName.Text ; _logic.GetLesson.le_desc =txtDesc.Text ; _logic.GetLesson.le_location =txtLocation.Text ; // txtMaster.Text = _logic.GetLesson.le_master;   _logic.GetLesson.le_xuefen = Convert.ToInt32(txtXunFen.Text);   _logic.GetLesson.le_trainer = txtTrainer.Text;  _logic.GetLesson.le_startdate = txtStartDate.Text; _logic.GetLesson.le_enddate =txtEndDate.Text ;  } private void chgOperTxt(bool addNew) { DataDetail.Visible = true; btnSubmit.Enabled = true; } private void ClearDetail() { txtName.Text = ""; txtDesc.Text = ""; txtLocation.Text = ""; // txtMaster.Text = _logic.GetLesson.le_master; txtXunFen.Text = ""; txtTrainer.Text = ""; // txtPasswd.Text = _logic.GetEmployee.em_passwd; txtStartDate.Text = ""; txtEndDate.Text = ""; } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { chgOperTxt(false); if (GridView1.DataKeys != null) { string id = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString(); _logic.Initialize(int.Parse(id)); } DetailDataBind(); } public void BindTree(string id, TreeNode pNode, DataView dv) { dv.RowFilter = "lc_uplevel = '" + id + "'"; foreach (DataRowView row in dv) { TreeNode node = new TreeNode(); node.Text = row["lc_name"].ToString(); node.Value = row["ID"].ToString(); if (pNode == null) //说明是根节点 { TreeDept.Nodes.Add(node); node.Expanded = true; } else { pNode.ChildNodes.Add(node); node.Expanded = true; } BindTree(node.Value, node, new DataView(dv.Table)); } } protected void TreeDept_SelectedNodeChanged(object sender, EventArgs e) { GridView1.SelectedIndex = -1; DataView dv = new DataView(_logic.GetAllActiveData().Tables[0]); if(TreeDept.SelectedValue !="0") dv.RowFilter = "le_category = '" + TreeDept.SelectedValue + "'"; GridView1.DataSource = dv; GridView1.DataBind(); ClearDetail(); DataDetail.Visible = false; } //如果没有下面方法会报错类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内 public override void VerifyRenderingInServerForm(Control control) { } protected void Excel_Click(object sender, EventArgs e) { Master.ScriptMgr.RegisterPostBackControl(this.Button1); GridView1.AllowPaging = false; GridView1.Columns[GridView1.Columns.Count -1].Visible = false; Databound(); Export("application/ms-excel", "培训名单.xls"); GridView1.AllowPaging = false; GridView1.Columns[GridView1.Columns.Count-1].Visible = true; Databound(); } private void Export(string FileType, string FileName) { Response.Charset = "GB2312"; Response.ContentEncoding = Encoding.UTF7; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString()); Response.ContentType = FileType; EnableViewState = false; StringWriter tw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); GridView1.RenderControl(hw); Response.Write(tw.ToString()); Response.End(); } }