asp.netWeb開發中ztree實現無極限增刪改查連線資料同步資料庫操作
阿新 • • 發佈:2019-02-10
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Text;
using System.Configuration;
using Boss.DAL;
public partial class System_Sys_TreeList : System.Web.UI.Page
{
public string tree, TopClass;
protected void Page_Load(object sender, EventArgs e)
{
//取得傳過來的TopClassid從而判斷要讀取哪些功能選單
//TopClass = Request.QueryString["id"].ToString();
//TopClass = "0";
if (!IsPostBack)
{
bindMenu();//獲取父級ID
}
// getStrXml();
_GetXml();
}
#region 獲取父級選單
/// <summary>
/// 讀取一級選單
/// </summary>
private void bindMenu()
{
//" + TopClass + "
SysDataAndSQLClass ds = new SysDataAndSQLClass();//讀取一級選單
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=0 And IsValid=1 ORDER BY id ASC", "default");
ddlMenuF.Items.Clear();
ddlMenuF.Items.Add(new ListItem("-頂級-", "0"));
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuF.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
ddlMenuT.Items.Add(new ListItem("請選擇", "0"));
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
}
/// <summary>
/// ///讀取二級選單
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMenuF_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddlMenuF.SelectedValue;
ddlMenuT.Items.Clear();
ddlMenuTh.Items.Clear();
ddlMenuT.Items.Add(new ListItem("請選擇", "0"));
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
if (id != "0")
{
SysDataAndSQLClass ds = new SysDataAndSQLClass();//讀取二級選單
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=" + id + " And IsValid=1 ORDER BY id ASC", "default");
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuT.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
}
ddlMenuTh.Visible = true;
}
/// <summary>
/// //讀取三級選單;
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMenuT_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddlMenuT.SelectedValue;
ddlMenuTh.Items.Clear();
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
if (id != "0")
{
SysDataAndSQLClass ds = new SysDataAndSQLClass();
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=" + id + " And IsValid=1 ORDER BY id ASC", "default");
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuTh.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
if (dt.Rows.Count == 0)
{
ddlMenuTh.Visible = false;
}
else
{
ddlMenuTh.Visible = true;
}
}
}
#endregion
#region 獲取選單樹
protected void _GetXml()
{
//" + TopClass + "
string _xml = "";
string _tag = "";
SysDataAndSQLClass ds = new SysDataAndSQLClass();
string sqlstr = "select id,pid,title,url from Sys_Tree where pid=0 And IsValid=1 ORDER BY id ASC ";
DataTable dt = ds.ExecSQLDataTable(sqlstr, "default");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
_xml += "{\nid:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\", name: \"" + dt.Rows[i]["title"].ToString() + "\", open: true,\n";
_xml += "children: [\n";
_tag = _GetTag(dt.Rows[i]["id"].ToString()).ToString();
_xml += _tag + " \n ]\n},";
}
_xml += "";
tree = _xml;
}
}
protected string _GetTag(string _mid)
{
string _xml = "";
SysDataAndSQLClass ds = new SysDataAndSQLClass();
string sqlstr = "select id,pid,title,url from Sys_Tree where pid=" + _mid + " And IsValid=1 ORDER BY id ASC ";
DataTable dt = ds.ExecSQLDataTable(sqlstr, "default");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string sql = "select id,title,url from Sys_Tree where pid=" + dt.Rows[i]["id"].ToString() + " And IsValid=1 ORDER BY id ASC ";
DataTable dt_sql = ds.ExecSQLDataTable(sql, "default");
if (dt_sql.Rows.Count > 0)
{
_xml += "{\nid:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\", name: \"" + dt.Rows[i]["title"].ToString() + "\", open: true,\n";
_xml += "children: [\n";
_xml += _GetTag(dt.Rows[i]["id"].ToString()).ToString() + " \n ]\n},";
}
else
{
_xml += " { id:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\",name:\"" + dt.Rows[i]["title"].ToString() + "\"},";//新方法
}
}
}
return _xml;
}
#endregion
/// <summary>
/// 新增樹
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ButtonAddSys_IBmenuTree_Click(object sender, EventArgs e)
{
string PID = ddlMenuF.Text;
if (ddlMenuTh.SelectedValue != "0")//第三項不為空時,父級選單ID為三級選單的ID
{
PID = ddlMenuTh.Text;
}
else
{
if (ddlMenuT.SelectedValue != "0")//第三項不為空時且第二項不為空時,父級選單ID為二級選單的ID
{
PID = ddlMenuT.Text;
}
else
{
PID = ddlMenuF.Text;//第三項不為空時且第二項為空時,父級選單ID為一級或頂級選單的ID
}
}
if (PID == "0")
{
PID = TopClass.ToString();
}
string title = txttitle.Text;
string URL = txtURL.Text;
string OrderBy = txtOrderBy.Text;
string SysbrandID = "";
string CreateLoginId = Session["UserName"].ToString();
//為儲存過程呼叫準備引數
string tabName = "Sys_Tree";
string columns = "PID,title,URL,SysbrandID";//(父表主鍵),Pid
string values = "'" + PID + "','" + title + "','" + URL + "','" + SysbrandID + "'";//(父表主鍵值),'" + Pid + "'
//執行儲存過程呼叫類
int i = Boss.DAL.SysDataAndSQLClass.Sys_IB_Insert(tabName, columns, values, "default");
if (i == 0)
{
//寫日誌
int ilog = Convert.ToInt32(SysCommonClass.InsertSysLog("Insert", "TableName:" + tabName, "Columns:" + columns + " |Values:" + values).ToString());
//呼叫執行寫系統日誌
AddMSN.Text = "新增成功!";
_GetXml();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Text;
using System.Configuration;
using Boss.DAL;
public partial class System_Sys_TreeList : System.Web.UI.Page
{
public string tree, TopClass;
protected void Page_Load(object sender, EventArgs e)
{
//取得傳過來的TopClassid從而判斷要讀取哪些功能選單
//TopClass = Request.QueryString["id"].ToString();
//TopClass = "0";
if (!IsPostBack)
{
bindMenu();//獲取父級ID
}
// getStrXml();
_GetXml();
}
#region 獲取父級選單
/// <summary>
/// 讀取一級選單
/// </summary>
private void bindMenu()
{
//" + TopClass + "
SysDataAndSQLClass ds = new SysDataAndSQLClass();//讀取一級選單
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=0 And IsValid=1 ORDER BY id ASC", "default");
ddlMenuF.Items.Clear();
ddlMenuF.Items.Add(new ListItem("-頂級-", "0"));
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuF.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
ddlMenuT.Items.Add(new ListItem("請選擇", "0"));
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
}
/// <summary>
/// ///讀取二級選單
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMenuF_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddlMenuF.SelectedValue;
ddlMenuT.Items.Clear();
ddlMenuTh.Items.Clear();
ddlMenuT.Items.Add(new ListItem("請選擇", "0"));
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
if (id != "0")
{
SysDataAndSQLClass ds = new SysDataAndSQLClass();//讀取二級選單
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=" + id + " And IsValid=1 ORDER BY id ASC", "default");
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuT.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
}
ddlMenuTh.Visible = true;
}
/// <summary>
/// //讀取三級選單;
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlMenuT_SelectedIndexChanged(object sender, EventArgs e)
{
string id = ddlMenuT.SelectedValue;
ddlMenuTh.Items.Clear();
ddlMenuTh.Items.Add(new ListItem("請選擇", "0"));
if (id != "0")
{
SysDataAndSQLClass ds = new SysDataAndSQLClass();
DataTable dt = ds.ExecSQLDataTable("select id,title from Sys_Tree WHERE pid=" + id + " And IsValid=1 ORDER BY id ASC", "default");
for (int i = 0; i < dt.Rows.Count; i++)
{
ddlMenuTh.Items.Add(new ListItem(dt.Rows[i]["title"].ToString(), dt.Rows[i]["ID"].ToString()));
}
if (dt.Rows.Count == 0)
{
ddlMenuTh.Visible = false;
}
else
{
ddlMenuTh.Visible = true;
}
}
}
#endregion
#region 獲取選單樹
protected void _GetXml()
{
//" + TopClass + "
string _xml = "";
string _tag = "";
SysDataAndSQLClass ds = new SysDataAndSQLClass();
string sqlstr = "select id,pid,title,url from Sys_Tree where pid=0 And IsValid=1 ORDER BY id ASC ";
DataTable dt = ds.ExecSQLDataTable(sqlstr, "default");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
_xml += "{\nid:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\", name: \"" + dt.Rows[i]["title"].ToString() + "\", open: true,\n";
_xml += "children: [\n";
_tag = _GetTag(dt.Rows[i]["id"].ToString()).ToString();
_xml += _tag + " \n ]\n},";
}
_xml += "";
tree = _xml;
}
}
protected string _GetTag(string _mid)
{
string _xml = "";
SysDataAndSQLClass ds = new SysDataAndSQLClass();
string sqlstr = "select id,pid,title,url from Sys_Tree where pid=" + _mid + " And IsValid=1 ORDER BY id ASC ";
DataTable dt = ds.ExecSQLDataTable(sqlstr, "default");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string sql = "select id,title,url from Sys_Tree where pid=" + dt.Rows[i]["id"].ToString() + " And IsValid=1 ORDER BY id ASC ";
DataTable dt_sql = ds.ExecSQLDataTable(sql, "default");
if (dt_sql.Rows.Count > 0)
{
_xml += "{\nid:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\", name: \"" + dt.Rows[i]["title"].ToString() + "\", open: true,\n";
_xml += "children: [\n";
_xml += _GetTag(dt.Rows[i]["id"].ToString()).ToString() + " \n ]\n},";
}
else
{
_xml += " { id:\"" + dt.Rows[i]["ID"].ToString() + "\",pId:\"" + dt.Rows[i]["PID"].ToString() + "\",name:\"" + dt.Rows[i]["title"].ToString() + "\"},";//新方法
}
}
}
return _xml;
}
#endregion
/// <summary>
/// 新增樹
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ButtonAddSys_IBmenuTree_Click(object sender, EventArgs e)
{
string PID = ddlMenuF.Text;
if (ddlMenuTh.SelectedValue != "0")//第三項不為空時,父級選單ID為三級選單的ID
{
PID = ddlMenuTh.Text;
}
else
{
if (ddlMenuT.SelectedValue != "0")//第三項不為空時且第二項不為空時,父級選單ID為二級選單的ID
{
PID = ddlMenuT.Text;
}
else
{
PID = ddlMenuF.Text;//第三項不為空時且第二項為空時,父級選單ID為一級或頂級選單的ID
}
}
if (PID == "0")
{
PID = TopClass.ToString();
}
string title = txttitle.Text;
string URL = txtURL.Text;
string OrderBy = txtOrderBy.Text;
string SysbrandID = "";
string CreateLoginId = Session["UserName"].ToString();
//為儲存過程呼叫準備引數
string tabName = "Sys_Tree";
string columns = "PID,title,URL,SysbrandID";//(父表主鍵),Pid
string values = "'" + PID + "','" + title + "','" + URL + "','" + SysbrandID + "'";//(父表主鍵值),'" + Pid + "'
//執行儲存過程呼叫類
int i = Boss.DAL.SysDataAndSQLClass.Sys_IB_Insert(tabName, columns, values, "default");
if (i == 0)
{
//寫日誌
int ilog = Convert.ToInt32(SysCommonClass.InsertSysLog("Insert", "TableName:" + tabName, "Columns:" + columns + " |Values:" + values).ToString());
//呼叫執行寫系統日誌
AddMSN.Text = "新增成功!";
_GetXml();
}
}
}