using System; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using ZhangPu.Gov.Logical; using Tracen.Utils; public partial class RoleMain : PageBase { private LRole _logic; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _logic = new LRole(); Databound(); } SessionSeting(); } /// /// bound the query list. /// private void Databound() { GridView1.DataSource = _logic.GetAllActiveData().Tables[0]; GridView1.DataBind(); UpdateSession(); ClearDetail(); } private void SessionSeting() { if (IsPostBack) { _logic = (LRole)Session[appScope.PagelevelObj]; } } private void UpdateSession() { Session[appScope.PagelevelObj] = _logic; } /// /// set data from shift object to page /// private void DetailDataBind() { DataDetail.Visible = true; chkApprove.Checked=_logic.GetRole.role_4Approve ; txtJobName.Text = _logic.GetRole.role_name; txtJobDesc.Text = _logic.GetRole.role_desc; // chkStatus.Checked = _logic.GetRole.dr; } /************************************** protected methods (event listeners) ********************************/ protected void btnAddnew_Click(object sender, EventArgs e) { Databound(); chgOperTxt(true); _logic.Initialize(); DetailDataBind(); txtJobName.Focus(); GridView1.SelectedIndex = -1;  } 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(); txtJobName.Focus(); } 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 if (txtJobDesc.Text.Trim().Length + txtJobName.Text.Trim().Length == 0) { txtJobName.Focus(); Databound(); DataDetail.Visible = true; ScriptManager.RegisterStartupScript(btnSubmit, typeof(UpdatePanel), "alert", "alert('请输入角色名称。');", true); return; } int oper = 0; oper = _logic.GetRole.ID > 0 ? _logic.GetRole.Update() : _logic.GetRole.Add(); ClearDetail(); } 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.GetRole.dr = false; _logic.GetRole.Update(); */ _logic.GetRole.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_RowDataBound(object sender, GridViewRowEventArgs e) { CheckBox chk; if (e.Row.RowType == DataControlRowType.DataRow) { chk = new CheckBox(); chk.Text = ""; chk.Enabled = false; chk.Checked = e.Row.Cells[3].Text.Trim().Equals("True"); e.Row.Cells[3].Controls.Add(chk); } } protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { string sortExpression = e.SortExpression; if (GridView1.SortDirection == SortDirection.Ascending) //设置排序方向 { SortGridView(sortExpression, " DESC"); } else { SortGridView(sortExpression, " ASC"); } } private void SortGridView(string sortExpression, string direction) { DataView dv = new DataView(_logic.GetAllActiveData().Tables[0]); dv.Sort = sortExpression + direction; GridView1.DataSource = dv; //将DataView绑定到GridView上 GridView1.DataBind(); } //reset the page protected void btnCancel_Click(object sender, EventArgs e) { _logic.Initialize(); Page_Load(this, e); ClearDetail(); } /***************************************** 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.GetRole.ID > 0) _logic.GetRole.lastmodified = DateTime.Now.ToString(); _logic.GetRole.dr = true; _logic.GetRole.role_name = txtJobName.Text; _logic.GetRole.role_desc = txtJobDesc.Text; _logic.GetRole.role_4Approve = chkApprove.Checked; } private void chgOperTxt(bool addNew) { btnSubmit.Enabled = true; DataDetail.Visible = true; } private void ClearDetail() { chkApprove.Checked = false;  txtJobName.Text = ""; txtJobDesc.Text = ""; DataDetail.Visible = false; } 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)); } Databound(); DetailDataBind(); } }