在 miniUi前端框架 的 树的结构 在web端展示 做哪些准备?
首先建一张表在数据库中: 结构如下
现在根据这一张表(或者多张表) 创建视图 :
create or replace view v_zz_type as
select to_char(a.t1) as id,to_char(a.t2) as text,a.t3 as pid from ZZ_TYPE a
left join ZZ_TYPE b on b.t1=a.t3;
(注意; pid [父节点] 要为空,否则报错)
miniUi调用视图即可展示数结构。
以上是前期准备,现在开始在代码中调用: miniUi写在<script> 中,如下url控制器+方法
<ul id="tree1" class="mini-tree" url="/LeetCodeNavyMaster/GetLeetCodeTree" style="width:100%; height:300px;"
showtreeicon="true" textfield="text" idfield="id" parentfield="pid" resultastree="false"
showarrow="true" onnodeclick="twomenu_click1" expandonnodeclick="true"></ul>
url="/LeetCodeNavyMaster/GetLeetCodeTree" style="width:100%; height:300px;"
showtreeicon="true" textfield="text" idfield="id" parentfield="pid" resultastree="false"
showarrow="true" onnodeclick="twomenu_click1" expandonnodeclick="true"></ul>
通过后台方法调用:
public string GetLeetCodeCatalog()
{
string treeJson;
string sql = "select * from v_zz_type t";
DataTable dt = GetDataTable(sql);
TreeHelper treeHeapler = new TreeHelper();
treeJson = treeHeapler.GetComTreeSelectJsonByTable(dt, "id", "text", "pid", "");
return treeJson;
}
最后调用:
#region 下拉列表TreeSelect树
StringBuilder comTreeResult = new StringBuilder();
StringBuilder comTreesb = new StringBuilder();
public string GetComTreeSelectJsonByTable(DataTable table, string idCol, string txtCol, string rela, object pId)
{
string comTreeJson = string.Empty;
string treeJson = string.Empty;
if (table.Rows.Count > 0)
{
string filer = string.Empty;
if (pId.ToString() == "")
{
filer = string.Format("{0} is null", rela);
}
else
{
filer = string.Format("{0}='{1}'",idCol,pId);
}
DataRow[] rows = table.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
comTreesb.Append("[{\"id\":\"" + row[idCol]
+ "\",\"text\":\"" + row[txtCol]
+ "\"},");
}
}
treeJson = comTreeJson.ToString() + GetTreeJsonTemp(table, idCol, txtCol, rela, pId);
//treesb = treesb.Remove(treesb.Length - 1, 1);
if (treeJson != string.Empty && treeJson != "")
treeJson = treeJson.Remove(treeJson.Length - 1, 1) + "]";
}
return treeJson;
}