easyui 動態添加Trees 和 Tabs

一、前臺   


<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();
        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章