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_item_index : MyWeb.config { DataTable treeDt = new DataTable(); const int LevelMax = MyWeb.item.KindLevelMax; //分類層數 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BuildTreeView(); if (!isStrNull(Request["num"])) { 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 item Where num=?"; sqlCmd.Parameters.Add(new OleDbParameter("num", Request["num"])); DataTable dt = sql.dataTable(sqlCmd); if (dt.Rows.Count > 0) { title_msg.Text = "修改【" + dt.Rows[0]["title"].ToString() + "】的選項資料"; item_name.Text = dt.Rows[0]["title"].ToString(); url.Text = dt.Rows[0]["url"].ToString(); target.SelectedValue = dt.Rows[0]["target"].ToString(); price.Text = dt.Rows[0]["price"].ToString(); demo.Text = dt.Rows[0]["demo"].ToString(); other.Text = dt.Rows[0]["other"].ToString(); other_url.Text = dt.Rows[0]["other_url"].ToString(); HiddenField1.Value = dt.Rows[0]["title"].ToString(); } } catch (Exception ex) { Response.Write("PageLoad:" + ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } edit.Visible = true; add.Visible = false; down_table.Visible = true; start.Visible = false; } else { table.Visible = false; down_table.Visible = false; if (Request["msg"] == "A"){start.Text = "【資料修改成功】";} else if (Request["msg"] == "B"){start.Text = "【資料新增成功】";} else if (Request["msg"] == "C") { start.Text = "【資料刪除成功】"; } else { start.Text = "【請點選下方欲新增、修改或刪除的選項分類】"; } } } } #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() { this.TreeView2.Nodes.Clear(); TreeTopology(); BuildChild(0, this.TreeView2.Nodes); treeDt.Dispose(); } public void BuildChild(int RootUid, TreeNodeCollection Nodes,int Level=1) { DataTable dt = treeDt; if (dt.Rows.Count == 0 & RootUid == 0) { delall.Visible = false; } else if (dt.Rows.Count > 0 & RootUid == 0) { delall.Visible = true; } foreach (DataRow row in dt.Rows) { if (row["root"].ToString() == RootUid.ToString()) { TreeNode newNode = new TreeNode(); if (Convert.ToString(Request["num"]) == row["num"].ToString() & this.HiddenField1.Value != "AddMainItem") { newNode.Text = "" + row["title"].ToString() + ""; if (Level + 1 > LevelMax) { ImageButton5.Visible = false; } } else { newNode.Text = row["title"].ToString(); } newNode.Value = row["num"].ToString(); newNode.ShowCheckBox = true; newNode.NavigateUrl = "index.aspx?num=" + row["num"].ToString(); newNode.Expand(); 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) { 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 = "UPDATE item SET title=?, url=?, price=?, demo=?, other=?, target=?, other_url=? WHERE num=?"; sqlCmd.Parameters.Add(new OleDbParameter("title", this.item_name.Text)); sqlCmd.Parameters.Add(new OleDbParameter("url", this.url.Text)); sqlCmd.Parameters.Add(new OleDbParameter("price", this.price.Text)); sqlCmd.Parameters.Add(new OleDbParameter("demo", this.demo.Text)); sqlCmd.Parameters.Add(new OleDbParameter("other", this.other.Text)); sqlCmd.Parameters.Add(new OleDbParameter("target", this.target.SelectedValue)); sqlCmd.Parameters.Add(new OleDbParameter("other_url", this.other_url.Text)); sqlCmd.Parameters.Add(new OleDbParameter("num", Request["num"])); sqlCmd.ExecuteNonQuery(); sqlConn.Close(); sqlConn.Dispose(); L_msg.Type = alert_type.success; L_msg.Text = "操作成功"; } catch (Exception ex) { //ScriptMsgTop("操作失敗!", msgIcon.error); start.Text = ex.Message; L_msg.Type = alert_type.danger; L_msg.Text = "ex.Message!"; } finally { sqlConn.Close(); sqlConn.Dispose(); } BuildTreeView(); } #endregion #region 新增 protected void add_Click(object sender, EventArgs e) { L_msg.Text = ""; int range_num = 1; MyWeb.sql sql = new MyWeb.sql(); DataTable dt = sql.selectTable(db, p_name, "SELECT top 1 range FROM item order by range desc"); if (dt.Rows.Count > 0) { range_num = (int)dt.Rows[0]["range"] + 1; } OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); string cu = "title,url,price,demo,other,target,root,range,other_url"; sqlCmd.CommandText = "INSERT INTO item (" + cu + ") VALUES (" + sql.mark(cu) + ")"; sqlCmd.Parameters.Add(new OleDbParameter("title", item_name.Text)); sqlCmd.Parameters.Add(new OleDbParameter("url", url.Text)); sqlCmd.Parameters.Add(new OleDbParameter("price", price.Text)); sqlCmd.Parameters.Add(new OleDbParameter("demo", demo.Text)); sqlCmd.Parameters.Add(new OleDbParameter("other", other.Text)); sqlCmd.Parameters.Add(new OleDbParameter("target", target.SelectedValue)); sqlCmd.Parameters.Add(new OleDbParameter("root", (HiddenField1.Value == "AddMainItem"? "0": Convert.ToString(Request["num"])))); sqlCmd.Parameters.Add(new OleDbParameter("range", range_num)); sqlCmd.Parameters.Add(new OleDbParameter("other_url", other_url.Text)); sqlCmd.ExecuteNonQuery(); L_msg.Type = alert_type.success; L_msg.Text = "操作成功"; } catch (Exception ex) { L_msg.Type = alert_type.danger; L_msg.Text = "ex.Message!"; start.Text = ex.Message; } finally { sqlConn.Close(); sqlConn.Dispose(); } BuildTreeView(); } #endregion #region 刪除 protected void delall_Click(object sender, EventArgs e) { int j = 0; for (int i = 0; i < TreeView2.CheckedNodes.Count; i++) { if (TreeView2.CheckedNodes[i].Checked) { MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "Delete from item Where num=?"; sqlCmd.Parameters.Add(new OleDbParameter("num", TreeView2.CheckedNodes[i].Value)); sqlCmd.ExecuteNonQuery(); } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } Del_Ohter_Items(Convert.ToInt32(TreeView2.CheckedNodes[i].Value)); j++; } } if (j > 0) { Response.Redirect("index.aspx?msg=C"); } else { ScriptMsg("請勾選要刪除的項目", "", msgIcon.warning); } } protected void ImageButton6_Click(object sender, EventArgs e) { MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "Delete from item Where num=?"; sqlCmd.Parameters.Add(new OleDbParameter("num", Request["num"])); sqlCmd.ExecuteNonQuery(); } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } Del_Ohter_Items(Convert.ToInt32(Request["num"])); Response.Redirect("index.aspx?msg=C"); } public void Del_Ohter_Items(int d_num) { 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 item Where root=?"; sqlCmd.Parameters.Add(new OleDbParameter("root", d_num)); DataTable dt = sql.dataTable(sqlCmd); for (int i = 0; i < dt.Rows.Count; i++) { sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "Delete from item Where root=?"; sqlCmd.Parameters.Add(new OleDbParameter("root", d_num)); sqlCmd.ExecuteNonQuery(); Del_Ohter_Items((int)dt.Rows[i]["num"]); } } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } } #endregion #region 按鈕事件 protected void ImageButton4_Click(object sender, EventArgs e) { title_msg.Text = "於根目錄下,新增主選項資料"; table.Visible = true; item_name.Text = ""; url.Text = ""; target.SelectedValue = "A"; price.Text = ""; demo.Text = ""; other.Text = ""; other_url.Text = ""; add.Visible = true; edit.Visible = false; down_table.Visible = false; start.Visible = false; HiddenField1.Value = "AddMainItem"; BuildTreeView(); } protected void ImageButton5_Click(object sender, EventArgs e) { title_msg.Text = "於【" + HiddenField1.Value + "】分類下,新增選項資料"; item_name.Text = ""; url.Text = ""; target.SelectedValue = "A"; price.Text = ""; demo.Text = ""; other.Text = ""; add.Visible = true; edit.Visible = false; down_table.Visible = false; start.Visible = false; } #endregion protected void Button1_Click(object sender, EventArgs e) { MyWeb.sql sql = new MyWeb.sql(); OleDbConnection sqlConn = sql.conn(db, p_name); try { sqlConn.Open(); OleDbCommand sqlCmd = new OleDbCommand("", sqlConn); sqlCmd.CommandText = "Delete from item Where num=?"; sqlCmd.Parameters.Add(new OleDbParameter("num", Request["num"])); sqlCmd.ExecuteNonQuery(); } catch (Exception ex) { Response.Write(ex.Message); } finally { sqlConn.Close(); sqlConn.Dispose(); } Del_Ohter_Items(Convert.ToInt32(Request["num"])); Response.Redirect("index.aspx?msg=C"); } protected void sortButton_Click(object sender, EventArgs e) { Response.Redirect("range.aspx"); } }