GetTreeData 详细代码 符合 jqgrid treeReader 要求
时间: 2024-03-05 09:52:15 浏览: 65
好的,以下是一个 GetTreeData 方法的示例代码,该方法返回一个符合 jqGrid TreeReader 要求的 JSON 字符串:
```
[WebMethod]
public static string GetTreeData()
{
// 模拟树形结构数据
List<TreeData> treeData = new List<TreeData>();
treeData.Add(new TreeData() { id = 1, name = "Node 1", parent_id = null, level = 0 });
treeData.Add(new TreeData() { id = 2, name = "Node 2", parent_id = 1, level = 1 });
treeData.Add(new TreeData() { id = 3, name = "Node 3", parent_id = 1, level = 1 });
treeData.Add(new TreeData() { id = 4, name = "Node 4", parent_id = 2, level = 2 });
treeData.Add(new TreeData() { id = 5, name = "Node 5", parent_id = 2, level = 2 });
treeData.Add(new TreeData() { id = 6, name = "Node 6", parent_id = 3, level = 2 });
treeData.Add(new TreeData() { id = 7, name = "Node 7", parent_id = 3, level = 2 });
// 将树形结构数据转换为符合 jqGrid TreeReader 要求的 JSON 字符串并返回
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"page\":1,\"total\":1,\"records\":7,\"rows\":[");
for (int i = 0; i < treeData.Count; i++)
{
TreeData data = treeData[i];
jsonBuilder.Append("{\"id\":\"" + data.id + "\",");
jsonBuilder.Append("\"name\":\"" + data.name + "\",");
jsonBuilder.Append("\"parent\":\"" + (data.parent_id.HasValue ? data.parent_id.Value.ToString() : "") + "\",");
jsonBuilder.Append("\"level\":\"" + data.level + "\",");
jsonBuilder.Append("\"isLeaf\":\"" + (treeData.Count(d => d.parent_id == data.id) == 0 ? "true" : "false") + "\"}");
if (i < treeData.Count - 1)
{
jsonBuilder.Append(",");
}
}
jsonBuilder.Append("]}");
return jsonBuilder.ToString();
}
public class TreeData
{
public int id { get; set; }
public string name { get; set; }
public int? parent_id { get; set; }
public int level { get; set; }
}
```
在这个示例中,我们使用了一个名为 TreeData 的简单类来表示树形结构数据的每个节点。在 GetTreeData 方法中,我们使用 List<TreeData> 类型的变量来模拟树形结构数据,并将其转换为符合 jqGrid TreeReader 要求的 JSON 格式的字符串返回。请注意,我们使用 StringBuilder 类来构建 JSON 字符串,以便更容易地控制其格式。我们还在 TreeData 类中添加了一个 level 属性,以便在 JSON 字符串中指定每个节点的层级。
阅读全文