361 lines
11 KiB
Plaintext
361 lines
11 KiB
Plaintext
using System;
|
|
using System.Data;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using ZhangPu.Gov.Logical;
|
|
using Tracen.Utils;
|
|
|
|
public partial class DeptMain : PageBase
|
|
{
|
|
private LDepartment _logic;
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
if (!IsPostBack)
|
|
{
|
|
_logic = new LDepartment();
|
|
Databound();
|
|
}
|
|
SessionSeting();
|
|
}
|
|
|
|
/***************************************** private methods ******************************************/
|
|
|
|
/// <summary>
|
|
/// bound the query list.
|
|
/// </summary>
|
|
private void Databound()
|
|
{
|
|
//绑定部门列表
|
|
drplstDept.DataSource = _logic.GetAllActiveData();
|
|
drplstDept.DataTextField = "dep_name";
|
|
drplstDept.DataValueField = "pk_department";
|
|
drplstDept.DataBind();
|
|
|
|
|
|
|
|
|
|
drplstDept.Items.Insert(0, (new ListItem("张浦镇", "0")));
|
|
drplstDept.SelectedItem.Selected = false;
|
|
drplstDept.Items.FindByText("张浦镇").Selected = true;
|
|
|
|
|
|
|
|
//绑定部门人员列表
|
|
DropDownList1.DataSource = _logic.GetEmployees();
|
|
DropDownList1.DataTextField = "em_name";
|
|
DropDownList1.DataValueField = "pk_employee";
|
|
DropDownList1.DataBind();
|
|
DropDownList1.Items.Insert(0,(new ListItem("请选择...","0")));
|
|
DropDownList1.SelectedItem.Selected = false;
|
|
DropDownList1.Items.FindByText("请选择...").Selected = true;
|
|
//装载选定部门节点的部门数据
|
|
DataView dv = new DataView(_logic.GetAllActiveData());
|
|
string selectedValue = TreeDept.SelectedValue;
|
|
TreeDept.Nodes.Clear();
|
|
TreeDept.Nodes.Add(new TreeNode("张浦镇","0"));
|
|
TreeDept.Nodes[0].Expanded = true;
|
|
BindTree("0", TreeDept.Nodes[0], dv);
|
|
// TreeDept.SelectedNode.ChildNodes.Clear();
|
|
// BindTree(TreeDept.SelectedValue, TreeDept.SelectedNode, dv);
|
|
// TreeDept.Nodes.AddAt(0, new TreeNode("张浦镇", "0"));
|
|
if (selectedValue =="0") TreeDept.Nodes[0].Selected = true;
|
|
else
|
|
{
|
|
setTreeDeptSelected(selectedValue, TreeDept.Nodes[0]);
|
|
}
|
|
|
|
//绑定树列表里选中的部门下的所有部门数据
|
|
dv.RowFilter = "dep_mastdept = '" + selectedValue + "'";
|
|
GridView1.DataSource = dv;
|
|
GridView1.DataBind();
|
|
UpdateSession();
|
|
// btnSubmit.Enabled = false;
|
|
// ClearDetail();
|
|
|
|
|
|
drplstDept.Items.Clear();
|
|
initializeDrlstDept(TreeDept.Nodes, drplstDept ,"");
|
|
}
|
|
|
|
|
|
|
|
void initializeDrlstDept(TreeNodeCollection nds, DropDownList drplist, string emptyString)
|
|
{
|
|
|
|
|
|
foreach (TreeNode nd in nds)
|
|
{
|
|
|
|
ListItem li = new ListItem(emptyString + nd.Text,nd.Value);
|
|
drplist.Items.Add(li);
|
|
string NextemptyString = emptyString+ "----";
|
|
foreach (TreeNode nd1 in nd.ChildNodes)
|
|
{
|
|
li = new ListItem(NextemptyString + nd1.Text, nd1.Value);
|
|
drplist.Items.Add(li);
|
|
|
|
if (nd1.ChildNodes.Count > 0)
|
|
{
|
|
NextemptyString +="----";
|
|
initializeDrlstDept(nd1.ChildNodes, drplist, NextemptyString);
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void setTreeDeptSelected(string toFind,TreeNode nd)
|
|
{
|
|
foreach (TreeNode cnd in nd.ChildNodes)
|
|
{
|
|
if (cnd.Value == toFind)
|
|
{
|
|
cnd.Selected = true;
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
setTreeDeptSelected(toFind,cnd);
|
|
}
|
|
|
|
}
|
|
}
|
|
private void SessionSeting()
|
|
{
|
|
if (IsPostBack)
|
|
{
|
|
_logic = (LDepartment)Session[appScope.PagelevelObj];
|
|
}
|
|
}
|
|
|
|
private void UpdateSession()
|
|
{
|
|
Session[appScope.PagelevelObj] = _logic;
|
|
}
|
|
|
|
/// <summary>
|
|
/// set data from shift object to page
|
|
/// </summary>
|
|
private void DetailDataBind()
|
|
{
|
|
DataDetail.Visible = true;
|
|
txtDepName.Text = _logic.GetDepartment.dep_name ;
|
|
txtDepcode.Text = _logic.GetDepartment.dep_code;
|
|
txtDepDesc.Text = _logic.GetDepartment.dep_desc;
|
|
txtDepType.Text = _logic.GetDepartment.dep_type;
|
|
DropDownList1.SelectedItem.Selected = false;
|
|
if(DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString())!=null)
|
|
{
|
|
DropDownList1.Items.FindByValue(_logic.GetDepartment.dep_manager.ToString()).Selected = true;
|
|
}
|
|
drplstDept.SelectedItem.Selected = false;
|
|
if (drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()) != null)
|
|
{
|
|
drplstDept.Items.FindByValue(_logic.GetDepartment.dep_mastdept.ToString()).Selected = true;
|
|
}
|
|
|
|
// chkStatus.Checked = _logic.GetRole.dr;
|
|
}
|
|
|
|
/************************************** protected methods (event listeners) ********************************/
|
|
|
|
protected void btnAddnew_Click(object sender, EventArgs e)
|
|
{
|
|
chgOperTxt(true);
|
|
_logic.Initialize();
|
|
DetailDataBind();
|
|
GridView1.SelectedIndex = -1;
|
|
Databound();
|
|
drplstDept.SelectedItem.Selected = false;
|
|
if (drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value) != null)
|
|
{
|
|
drplstDept.Items.FindByValue(TreeDept.SelectedNode.Value).Selected = true;
|
|
}
|
|
}
|
|
|
|
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.GetDepartment.ID > 0 ? _logic.GetDepartment.Update() : _logic.GetDepartment.Add();
|
|
ClearDetail();
|
|
Databound();
|
|
}
|
|
|
|
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.GetDepartment.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("1");
|
|
e.Row.Cells[3].Controls.Add(chk);
|
|
}
|
|
*/
|
|
}
|
|
|
|
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 ********************************************/
|
|
|
|
/// <summary>
|
|
/// set data from page to shift object
|
|
/// </summary>
|
|
private void SetDataBack()
|
|
{
|
|
// _logic.GetRole.operater = Session["CurrentUserID"].ToString(); todo: write a public method to handle operater,createtime,lastmodfied ... log info.
|
|
|
|
if (!(_logic.GetDepartment.ID > 0 ))
|
|
{
|
|
_logic.GetDepartment.lastmodified = DateTime.Now.ToString();
|
|
_logic.GetDepartment.dep_mastdept = Convert.ToInt32(TreeDept.SelectedValue);
|
|
}
|
|
|
|
_logic.GetDepartment.dr = true;
|
|
_logic.GetDepartment.dep_name = txtDepName.Text;
|
|
_logic.GetDepartment.dep_desc = txtDepDesc.Text;
|
|
_logic.GetDepartment.dep_code = txtDepcode.Text;
|
|
_logic.GetDepartment.dep_type = txtDepType.Text;
|
|
if (DropDownList1.SelectedItem != null ) _logic.GetDepartment.dep_manager = Convert.ToInt32(DropDownList1.SelectedValue);
|
|
if (drplstDept.SelectedItem != null) _logic.GetDepartment.dep_mastdept = Convert.ToInt32(drplstDept.SelectedValue);
|
|
}
|
|
|
|
private void chgOperTxt(bool addNew)
|
|
{
|
|
DataDetail.Visible = true;
|
|
lbEdit.Text = addNew ? "增加新记录" : "修改现有记录";
|
|
btnSubmit.Enabled = true;
|
|
}
|
|
|
|
private void ClearDetail()
|
|
{
|
|
txtDepName.Text = "";
|
|
txtDepcode.Text = "";
|
|
txtDepDesc.Text = "";
|
|
txtDepType.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();
|
|
}
|
|
|
|
|
|
|
|
public void BindTree(string id, TreeNode pNode, DataView dv)
|
|
{
|
|
|
|
dv.RowFilter = "dep_mastdept = '" + id + "'";
|
|
foreach (DataRowView row in dv)
|
|
{
|
|
TreeNode node = new TreeNode();
|
|
node.Text = row["dep_name"].ToString();
|
|
node.Value = row["pk_department"].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());
|
|
dv.RowFilter = "dep_mastdept = '" + TreeDept.SelectedValue + "'";
|
|
GridView1.DataSource = dv;
|
|
GridView1.DataBind();
|
|
ClearDetail();
|
|
}
|
|
} |