using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; public partial class admin_user_group_reg : MyWeb.config { DataTable treeDt = new DataTable(); const int LevelMax = MyWeb.item.KindLevelMax; //分類層數 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!isStrNull(Request["num"])) { L_msg.Text = ""; MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "SELECT * FROM admin_group Where g_name=?"; sqlCmd.Parameters.Add(new OleDbParameter("g_name", Request["num"])); DataTable dt = sql.dataTable(sqlCmd); if (dt.Rows.Count > 0) { g_name.Text = dt.Rows[0]["g_name"].ToString(); if (dt.Rows[0]["g_name"].ToString() == "EZ") { rootMsg.Text = "注意:設計師模式群組無需勾選權限,重新登入即可獲得全部功能。"; } demo.Text = dt.Rows[0]["demo"].ToString(); HiddenField1.Value = dt.Rows[0]["items"].ToString(); } } catch (Exception ex) { L_msg.Text = ex.Message; } finally { sqlConn.Close(); sqlConn.Dispose(); } g_name.ReadOnly = true; g_name.BorderWidth = 0; g_name.BackColor = System.Drawing.Color.Transparent; edit.Visible = true; goback.Visible = true; add.Visible = false; title_msg.Text = "修改"; } else { edit.Visible = false; title_msg.Text = "新增"; } BuildTreeView(); } } protected void goback_Click(object sender, EventArgs e) { Response.Redirect("group_show.aspx" + (!isStrNull(Request["page"]) ? "?page=" + Request["page"] : "")); } #region 建立TreeView選單 protected void TreeTopology() { MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "SELECT num,title,root FROM item ORDER BY root, range"; treeDt = sql.dataTable(sqlCmd); } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } } public void BuildTreeView() { TreeView1.Nodes.Clear(); TreeTopology(); BuildChild(0, TreeView1.Nodes); treeDt.Dispose(); } public void BuildChild(int RootUid, TreeNodeCollection Nodes, int Level=1) { string chkbox_value = ""; if (HiddenField1.Value != "") { chkbox_value = "," + HiddenField1.Value; } string powers = "," + admin.info.power; DataTable dt = treeDt; foreach (DataRow row in dt.Rows) { if (row["root"].ToString() == RootUid.ToString()) { string p = "," + row["num"].ToString() + ","; if (powers.IndexOf(p, 0) > -1 || admin.info.group == "EZ") { TreeNode NewNode = new TreeNode(); NewNode.Text = row["title"].ToString(); NewNode.Value = row["num"].ToString(); NewNode.SelectAction = TreeNodeSelectAction.None; NewNode.ToolTip = row["root"].ToString() + "-" + row["num"].ToString(); if (!isStrNull(Request["num"]) & chkbox_value.IndexOf(p, 0) > -1) { NewNode.Checked = true; } Nodes.Add(NewNode); if (Level+1<= LevelMax) { BuildChild((int)row["num"], NewNode.ChildNodes, Level + 1); } } } } } #endregion #region 修改 protected void edit_Click(object sender, EventArgs e) { string chk_data = chkData(); //取得勾選權限值 MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "UPDATE admin_group SET demo=?, items=? WHERE g_name=?"; sqlCmd.Parameters.Add(new OleDbParameter("demo", demo.Text)); sqlCmd.Parameters.Add(new OleDbParameter("items", chk_data)); sqlCmd.Parameters.Add(new OleDbParameter("g_name", Request["num"])); sqlCmd.ExecuteNonQuery(); if(admin.info.group != "EZ") { Model.admin_log admin_log = new Model.admin_log(); admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Update, "群組:" + g_name.Text); } Response.Redirect("group_show.aspx" + (!isStrNull(Request["page"]) ? "?page=" + Request["page"] : "")); } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } } //取得勾選權限值 public string chkData() { string chk_data = ""; for (int i = 0; i < TreeView1.CheckedNodes.Count; i++) { string chk_data2 = "," + chk_data; //string chk = "," + TreeView1.CheckedNodes[i].Parent.ValuePath + ","; //if (chk_data2.IndexOf(chk, 0) == -1) //{ // chk_data += TreeView1.CheckedNodes[i].Parent.ValuePath + ","; //取得主分類編號 //} chk_data += TreeView1.CheckedNodes[i].Value.ToString() + ","; //取得勾選分類編號 } return chk_data; } #endregion #region 新增 protected void add_Click(object sender, EventArgs e) { L_msg.Text = ""; string chk_data = chkData(); //取得勾選權限值 MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "SELECT * FROM admin_group Where g_name=?"; sqlCmd.Parameters.Add(new OleDbParameter("g_name", g_name.Text)); DataTable dt = sql.dataTable(sqlCmd); if (dt.Rows.Count > 0) { L_msg.Type = alert_type.warning; L_msg.Text = "您所輸入的群組代號重覆"; } else { sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "INSERT INTO admin_group (g_name, items, demo) VALUES (?, ?, ?)"; sqlCmd.Parameters.Add(new OleDbParameter("g_name", g_name.Text)); sqlCmd.Parameters.Add(new OleDbParameter("items", chk_data)); sqlCmd.Parameters.Add(new OleDbParameter("demo",demo.Text)); sqlCmd.ExecuteNonQuery(); sqlConn.Close(); sqlConn.Dispose(); if (admin.info.group != "EZ") { Model.admin_log admin_log = new Model.admin_log(); admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Insert, "群組:" + g_name.Text); } Response.Redirect("group_show.aspx"); } } catch (Exception ex) { L_msg.Text =ex.Message; L_msg.Type = alert_type.danger; } finally { sqlConn.Close(); sqlConn.Dispose(); } } #endregion }