255 lines
8.4 KiB
C#
255 lines
8.4 KiB
C#
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
|
|
|
|
|
|
} |