对“打造基于jQuery的高性能TreeView”的扩展
2009-10-28 00:00:00 来源:WEB开发网类很简单,大家看代码就明白了。为了模拟json的嵌套结构,在类中使用了一个 List<TreeItem> ChildNodes 来实现这种嵌套。
第二步:为类添加相应的方法:
要把类和成json 字符串,最简单的方法是使用 System.Web.Script.Serialization 命名空间中的 JavaScriptSerializer 类,知道这些就很简单了,我们为类 TreeItem 添加一个 ToJsonString() 的公有方法,代码如下:
/**//// <summary>
/// 生成 JSON 字符串,
/// </summary>
/// <returns></returns>
public string ToJsonString()
{
JavaScriptSerializer jss = new JavaScriptSerializer();
string sJson = jss.Serialize(this);
return "var treedata=[" + sJson + "];";
}
为了测试结果是否正确,可以写一个模拟测试的方法,看其输出。方法很简单,为了避免凑字之嫌,就不帖出来了,测试后生成的结果如下:
基本上和原文要求的json格式一致。但也发现了一个问题,当TreeView 类中 List<TreeItem> ChildNodes 没有数据时,添加子节点会出现 空引用的错误 ,如果在构造函数中先 new 一下的话,不会报错,但生成的 json 中 ChildNodes为[],而原来要求的是:ChildNodes:null。这个问题很好办:加上一个方法,来添加子节点,如果子节点没有分配内存,则先分配后添加,这样可以保证有子项时不会报错,没有子项时能生成 null.方法代码如下:
赞助商链接