好久没有使用ztree了,刚才在使用ztree做导航时遇到了几个小问题: 1、返回数据源是undefined 。 2、数据出现后树结构没有出现(pIdKey单词拼写错误).
在使用Oracle查询时,Oracle将所有列名转化为大写,我在JSON处理过程中手动将字段处理成小写。
js代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<script type= "text/javascript" >
var
selectNode; // ztree选中节点
var
treeObj;
var
settings = {
data: {
key: {
name: "name"
},
simpleData: {
enable: true ,
idKey: "id" ,
pIdKey: "pid"
}
},
callback: {
}
};
function
AjaxZtree() {
$.ajax({
type: ‘GET‘ ,
url: ‘../Analysis/Handler/Tree.ashx?action=report‘ ,
cache: true ,
async: false ,
dataType: "text" ,
ContentType: "application/json; charset=utf-8" ,
success: function
(data) {
$.fn.zTree.init($( "#ReportTree" ), settings, ( new
Function( ‘return‘
+ data))());
treeObj = $.fn.zTree.getZTreeObj( "ReportTree" );
},
error: function
() {
alert( ‘Error‘ );
}
});
}
$(document).ready( function
() {
AjaxZtree();
});
</script>
|
ashx代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public
void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain" ;
string
action = context.Request.QueryString[ "action" ];
if
(action == "report" )
{
var
result = reportibll.ZtreeJSON();
string
json = ConvertJson.ToJson(result);
context.Response.Write(json);
}
else
{
}
}
|
JSON处理代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public
static string ToJson(DataTable dt)
{
StringBuilder jsonString = new
StringBuilder();
jsonString.Append( "[" );
DataRowCollection drc = dt.Rows;
for
( int
i = 0; i < drc.Count; i++)
{
jsonString.Append( "{" );
for
( int
j = 0; j < dt.Columns.Count; j++)
{
string
strKey = dt.Columns[j].ColumnName.ToLower();
string
strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append( "\""
+ strKey + "\":" );
strValue = StringFormat(strValue, type);
if
(j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + "," );
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append( "}," );
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append( "]" );
return
jsonString.ToString();
}
|