#region 将datatable转换成适合tree的json格式
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
//其中idCol用来绑定tree的id,txtCol用来绑定tree的text,rela来表示父节点
public string GetTreeJsonByTable(DataTable table, string idCol, string txtCol, string rela, object pId)
{
result.Append(sb.ToString());
sb.Clear();
if (table.Rows.Count > 0)
{
sb.Append("[");
string filer = string.Format("{0}='{1}'", rela, pId);
DataRow[] rows = table.Select(filer);
if (rows.Length > 0)
{
foreach (DataRow row in rows)
{
sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"state\":\"open\",\"attributes\":{\"DictID\":\"" + row[0] + "\",\"ParentDictCode\":\"" + row[rela] + "\",\"Description\":\"" + row[4] + "\",\"Note\":\"" + row[5] + "\"}");
if (table.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)
{
sb.Append(",\"children\":");
GetTreeJsonByTable(table, idCol, txtCol, 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();
}
else
return null;
}
#endregion
前台编辑tree节点
//编辑节点
function edit() {
var t = $('#tt');
var node = t.tree('getSelected');
if (node) {
$('#dlg').dialog('open').dialog('setTitle', '编辑字典');
$('#fm').form('load', {
DictID: node.attributes.DictID,
DictCode: node.id,
Name: node.text,
Description: node.attributes.Description,
ParentDictCode: node.attributes.ParentDictCode,
Note: node.attributes.Note
});
url = 'Ajax/Update_DictHandler.ashx?Name=' + node.text;
}
}
<div id="dlg" class="easyui-dialog" style="width: 400px; height: 280px; padding: 10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">
数据字典</div>
<form id="fm" method="post" novalidate>
<table>
<div class="fitem">
<tr>
<td>
<label>
字典编码:</label>
</td>
<td>
<input name="DictCode" class="easyui-validatebox" required="true">
</td>
</tr>
</div>
<div class="fitem">
<tr>
<td>
<label>
名称:</label>
</td>
<td>
<input name="Name" class="easyui-validatebox" required="true">
</td>
</tr>
</div>
<div class="fitem">
<tr>
<td>
<label>
字典描述:</label>
</td>
<td>
<input name="Description">
</td>
</tr>
</div>
<div class="fitem">
<tr>
<td>
<label>
上级字典编码:</label>
</td>
<td>
<input name="ParentDictCode" text="123" class="easyui-validatebox" required="true">
</td>
</tr>
</div>
<div class="fitem">
<tr>
<td>
<label>
备注:</label>
</td>
<td>
<input name="Note">
</td>
</tr>
</div>
</table>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconcls="icon-ok" οnclick="saveDict()">保存</a>
<a href="#" class="easyui-linkbutton" iconcls="icon-cancel" οnclick="javascript:$('#dlg').dialog('close')">
取消</a>
</div>