一、前臺
<script type="text/javascript">
$(function () {$('#lefttree').tree({
animate: true,
checkbox: false,
url: 'InfoDataSet.ashx?method=zsxq&DJBH=' + '<%=this.DJBH%> ',
onClick: function (node) {
if (node.attributes != "") {
addTab(node.text, node.attributes, node.id);
}
},
onLoadSuccess: function (node, data) {
$('#lefttree').show();
}
});
});
function addTab(text, attributes, id) {
if ($("#tabs").tabs('exists', text)) { //若選項卡已存在,選擇該選項卡
$("#tabs").tabs('select', text);
} else {
var content = "<iframe frameborder='0' scrolling='auto' style='width:100%;height:100%' src="
+ attributes + "></iframe>";
$("#tabs").tabs('add', { //生成新的選項卡,
title: text,
closable: true,
content: content
});
}
}
</script>
<body class="easyui-layout" style="overflow-y: hidden" scroll="no"><form id="form1" runat="server">
<div region="west" hide="true" split="true" title="s" style="width: 180px;" id="west">
<div id="nav" class="easyui-accordion" fit="true" border="false">
<!-- 導航內容 -->
<div id="lefttree" style="margin: 5px;">
</div>
</div>
</div>
<div id="mainPanle" region="center" style="background: #eee; overflow-y: hidden">
<div id="tabs" class="easyui-tabs" fit="true" border="false">
<%--<div title="" style="padding: 20px; overflow: hidden;">
</div>--%>
</div>
</div>
</form>
</body>
二、後臺
DataTable dt = createDT(this.DJBH);
GetTreeJsonByTable(dt, "module_id", "module_name", "module_url", "module_url1", "module_fatherid", "0");
//創建數據
protected static DataTable createDT(string DJBH)
{
string sql = "select A.YWBH,A.XMMC,A.DJBH,A.OID,G.FK_Flow,G.FK_Node from JBXXB A,WF_GenerWorkFlow G where A.OID=G.WorkID and G.WFState='3' and A.DJBH='" + DJBH + "' order by A.RDT asc";
DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
DataTable dt1 = new DataTable();
dt1.Columns.Add("module_id");//節點ID
dt1.Columns.Add("module_name");//節點名稱
dt1.Columns.Add("module_fatherid");//父節點
dt1.Columns.Add("module_url");//url
dt1.Columns.Add("module_url1");//url
dt1.Columns.Add("module_order");//順序
string ywbh = "";
string xmmc = "";
string url = "";
string url1 = "";
string id = "";
dt1.Rows.Add("fk", "標題", "0", "1.aspx", "1");
for (int i = 0; i < dt.Rows.Count; i++)
{
ywbh = dt.Rows[i]["YWBH"].ToString();
xmmc = dt.Rows[i]["XMMC"].ToString();
url = "/WF/FlowFormTree/FlowFormTreeView.aspx?WorkID=" + dt.Rows[i]["OID"] + "&FK_Flow=" + dt.Rows[i]["FK_Flow"] + "&FK_Node=" + dt.Rows[i]["FK_Node"];
id = dt.Rows[i]["OID"].ToString();
dt1.Rows.Add(ywbh, xmmc, "fk", url, url1, id);
}
return dt1;
}
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
/// <summary>
/// 根據DataTable生成EasyUI Tree Json樹結構
/// </summary>
/// <param name="tabel">數據源</param>
/// <param name="idCol">ID列</param>
/// <param name="txtCol">Text列</param>
/// <param name="url">節點Url</param>
/// <param name="rela">關係字段</param>
/// <param name="pId">父ID</param>
private string GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string url, string url1, string rela, object pId)
{
result.Append(sb.ToString());
sb.Clear();
if (tabel.Rows.Count > 0)
{
sb.Append("[");
string filer = string.Format("{0}='{1}'", rela, pId);
DataRow[] rows = tabel.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"attributes\":\"" + row[url] + "\",\"state\":\"open\"");
if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)
{
sb.Append(",\"children\":");
GetTreeJsonByTable(tabel, idCol, txtCol, url, url1, rela, row[idCol]);
result.Append(sb.ToString());
sb.Clear();
}
result.Append(sb.ToString());
sb.Clear();
sb.Append("},");
}
sb = sb.Remove(sb.Length - 1, 1);
}
sb.Append("]");
result.Append(sb.ToString());
sb.Clear();
}
return result.ToString();
}