JSON

ExtAspNet应用技巧(二十二) - Ext4JSLint之JSON文件创建树控件(2)

字号+ 作者:H5之家 来源:H5之家 2016-01-25 09:02 我要评论( )

引子 Ext4JSLint是使用ExtAspNet来展示JSLint-Toolkit检查结果的开源项目。 JSLint-Toolkit是一个使用Rhino和JSLint的开源项目,可以对一个文件夹中的所有JavaS

ASPX标签定义

1.<ext:Tree runat="server" ID="Tree1" ShowBorder="false" ShowHeader="false"  AutoScroll="true"
2.    EnableArrows="true"  OnNodeCommand="Tree1_NodeCommand">
3.</ext:Tree>

标签定义非常简单,因为所有的逻辑都在后台实现了。

同时定义了点击树节点的事件处理OnNodeCommand="Tree1_NodeCommand",因为我们要在点击树节点时 更新中间的Grid,也即是当前JavaScript的错误列表。

树与递归

只要有树的地方就少不了递归函数,因此这段代码对于我们理解递归也很有帮助。

首先看看页面初始化代码:

01.protected void Page_Load(object sender, EventArgs e)
02.{
03.     if (!IsPostBack)
04.    {
05.        LoadData(true);
06.    }
07.}
08.#region LoadData
09.private void LoadData(bool showAllErrors)
10. {
11.    btnExpandAll.OnClientClick = Tree1.GetExpandAllNodesReference();
12.     btnCollapseAll.OnClientClick = Tree1.GetCollapseAllNodesReference();
13. 
14.     string treestr = GetFileContent("~/data/json/tree.json");
15.     List<string> treePathList = new List<string>();
16.     ResolveMenuTree(new JSONArray(treestr), treePathList, showAllErrors,  Tree1.Nodes);
17.}
18.private string GetFileContent(string path)
19.{
20.     string treestr = String.Empty;
21.    using (StreamReader sr = new  StreamReader(Server.MapPath(path)))
22.    {
23.        treestr =  sr.ReadToEnd();
24.    }
25.    return treestr;
26.}
27.private void  ResolveMenuTree(JSONArray ja, List<string> treePathList, bool showAllErrors,  ExtAspNet.TreeNodeCollection nodes)
28.{
29.    // TODO 递归生成树
30.}
31.private string GetTreePath(List<string> treePath)
32.{
33.     string path = String.Empty;
34.    foreach (string node in treePath)
35.     {
36.        path += node + "/";
37.    }
38.    return  path.TrimEnd('http://www.bianceng.cn/');
39.}

我们通过Nii.JSON这个开源类库(已经包含在ExtAspNet中),来将JSON字符串转换为JSONArray对象 ,以便在递归中使用:

1.JSONArray ja = new JSONArray(treestr);

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ExtAspNet应用技巧(二十二) - Ext4JSLint之JSON文件创建树控件(3)

    ExtAspNet应用技巧(二十二) - Ext4JSLint之JSON文件创建树控件(3)

    2015-10-28 15:05

  • PHP中JSON的应用技巧

    PHP中JSON的应用技巧

    2015-10-14 13:07

  • 关于JSON以及JSON在PHP中的应用技巧(2)

    关于JSON以及JSON在PHP中的应用技巧(2)

    2015-10-05 09:14

  • 关于JSON以及JSON在PHP中的应用技巧(3)

    关于JSON以及JSON在PHP中的应用技巧(3)

    2015-10-04 17:14

网友点评