using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using DeiNiu.wms.Logical;
using DeiNiu.Utils;
namespace ajax.Dict
{
public partial class AuthorityMain :PageBase
{
private LAuthority _logic;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
_logic = new LAuthority();
Databound();
}
SessionSeting();
}
/***************************************** private methods ******************************************/
///
/// bound the query list.
///
private void Databound()
{
//装载选定部门节点的部门数据
DataView dv = new DataView(_logic.getAllActiveData().Tables[0]);
if (TreeAuth.SelectedNode != null)
{
TreeAuth.SelectedNode.ChildNodes.Clear();
BindTree(TreeAuth.SelectedNode.Value, TreeAuth.SelectedNode, dv);
//绑定树列表里选中的部门下的所有部门数据
dv.RowFilter = "auth_uplevel = '" + TreeAuth.SelectedValue + "'";
}
GridView1.DataSource = dv;
GridView1.DataBind();
UpdateSession();
ClearDetail();
}
private void SessionSeting()
{
if (IsPostBack)
{
_logic = (LAuthority)Session[appScope.PagelevelObj];
}
}
private void UpdateSession()
{
Session[appScope.PagelevelObj] = _logic;
}
///
/// set data from shift object to page
///
private void DetailDataBind()
{
//公共信息不可以有url,必须为public
LAuthority ltmp = new LAuthority();
ltmp.Initialize(Convert.ToInt32(TreeAuth.SelectedValue));
chkPublic.Enabled = !ltmp.GetAuthority.auth_publicInfomation;
chkPublicInfo.Enabled = !ltmp.GetAuthority.auth_publicInfomation;
chkAlert.Enabled =!chkPublicInfo.Enabled; //跑马灯的上级必须是公共信息
if (chkPublicInfo.Checked)
{
txtLink.Enabled = false;
txtFormClass.Enabled = false;
}
DataDetail.Visible = true;
txtName.Text = _logic.GetAuthority.auth_name;
txtDesc.Text = _logic.GetAuthority.auth_desc;
txtLink.Text = _logic.GetAuthority.auth_link;
txtFormClass.Text = _logic.GetAuthority.auth_class;
chkPublic.Checked = _logic.GetAuthority.auth_public;
chkPublicInfo.Checked = _logic.GetAuthority.auth_publicInfomation;
chkSpecial.Checked = _logic.GetAuthority.auth_special;
txtOrder.Text = _logic.GetAuthority.auth_order + "";
//上级为公共信息,则下级也必须是
if(ltmp.GetAuthority.auth_publicInfomation)
chkPublicInfo.Checked = ltmp.GetAuthority.auth_publicInfomation;
if (ltmp.GetAuthority.auth_public)
chkPublic.Checked = ltmp.GetAuthority.auth_public;
chkAlert.Checked = _logic.GetAuthority.auth_marqueen;
chkPublic.Checked = _logic.GetAuthority.auth_public;
chkEnable.Checked = _logic.GetAuthority.dr;
ltmp = null;
// chkStatus.Checked = _logic.GetRole.dr;
}
/************************************** protected methods (event listeners) ********************************/
protected void btnAddnew_Click(object sender, EventArgs e)
{
chgOperTxt(true);
_logic.Initialize();
GridView1.SelectedIndex = -1;
Databound();
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.GetAuthority.ID > 0 ? _logic.GetAuthority.Update() : _logic.GetAuthority.Add();
ClearDetail();
Databound();
lbEdit.Text = "";
}
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.GetAuthority.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.GetAuthority.ID > 0))
{
// _logic.GetAuthority.lastmodified = DateTime.Now.ToString();
_logic.GetAuthority.auth_uplevel = Convert.ToInt32(TreeAuth.SelectedValue);
}
_logic.GetAuthority.auth_name = txtName.Text;
_logic.GetAuthority.auth_desc = txtDesc.Text;
_logic.GetAuthority.auth_link = txtLink.Text;
_logic.GetAuthority.auth_class = txtFormClass.Text;
_logic.GetAuthority.auth_public = chkPublic.Checked;
_logic.GetAuthority.auth_publicInfomation =chkPublicInfo.Checked ;
_logic.GetAuthority.auth_marqueen = chkAlert.Checked;
_logic.GetAuthority.auth_special = chkSpecial.Checked;
_logic.GetAuthority.auth_order = Convert.ToInt16( txtOrder.Text.Trim());
_logic.GetAuthority.dr = chkEnable.Checked;
}
private void chgOperTxt(bool addNew)
{
DataDetail.Visible = true;
lbEdit.Text = addNew ? "增加新记录" : "修改现有记录";
btnSubmit.Enabled = true;
}
private void ClearDetail()
{
txtName.Text = "";
txtDesc.Text = "";
txtLink.Text ="";
txtLink.Text = "";
chkPublic.Checked = false;
chkPublicInfo.Checked = false;
DataDetail.Visible = false;
chkSpecial.Checked = 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();
}
public void BindTree(string id, TreeNode pNode, DataView dv)
{
dv.RowFilter = "auth_uplevel = '" + id + "'";
foreach (DataRowView row in dv)
{
TreeNode node = new TreeNode();
node.Text = row["auth_name"].ToString();
node.Value = row["ID"].ToString();
if (pNode == null)
//说明是根节点
{
TreeAuth.Nodes.Add(node);
node.Expanded = false;
}
else
{
pNode.ChildNodes.Add(node);
node.Expanded = false;
}
BindTree(node.Value, node, new DataView(dv.Table));
}
}
protected void TreeAuth_SelectedNodeChanged1(object sender, EventArgs e)
{
GridView1.SelectedIndex = -1;
DataView dv = new DataView(_logic.getAllActiveData().Tables[0]);
dv.RowFilter = "auth_uplevel = '" + TreeAuth.SelectedValue + "'";
GridView1.DataSource = dv;
GridView1.DataBind();
ClearDetail();
if(TreeAuth.SelectedNode.ChildNodes.Count>0)TreeAuth.SelectedNode.Expand();
}
protected void chkPublicInfo_CheckedChanged(object sender, EventArgs e)
{
switch (chkPublicInfo.Checked)
{
case true:
txtLink.Text = string.Empty;
txtLink.Enabled = false;
txtFormClass.Text = string.Empty;
txtFormClass.Enabled = false;
chkPublic.Checked = true;
chkPublic.Enabled = false;
break;
case false:
txtLink.Text = _logic.GetAuthority.auth_link;
txtFormClass.Text = _logic.GetAuthority.auth_class;
txtFormClass.Enabled = true;
txtLink.Enabled = true ;
chkPublic.Checked = false;
chkPublic.Enabled = true;
break;
}
}
protected void chkSpecial_CheckedChanged(object sender, EventArgs e)
{
}
protected void GridView1_RowDataBound1(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[4].Text.Trim().Equals("True");
e.Row.Cells[4].Controls.Add(chk);
chk = new CheckBox();
chk.Text = "";
chk.Enabled = false;
chk.Checked = e.Row.Cells[5].Text.Trim().Equals("True");
e.Row.Cells[5].Controls.Add(chk);
}
}
}
}