1、xml

  <Sections>
<Item key ="1" value ="孕哺期" canBeSelected="false">
<Child key ="6" value ="备孕期"/>
<Child key ="7" value ="怀孕期"/>
<Child key ="8" value ="分娩期" />
</Item>
<Item key ="2" value ="0 - 6月"/>
<Item key ="3" value ="7 - 12月"/>
<Item key ="4" value ="1 - 3岁"/>
<Item key ="5" value ="4 - 6岁"/>
</Sections>

2、提取类

    public class ParentItem
{
public int Key { get; set; }
public string Value { get; set; }
public bool canBeSelected { get; set; }
public List<Child> Children { get; set; }
}
public class Child
{
public int Key { get; set; }
public string Value { get; set; }
}

3、linq读取xml,并将其填充实体集合

   string menuPath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "/Files/Config/BaseConfig.xml";
XDocument doc = XDocument.Load(menuPath);
var listP = from x in doc.Descendants("Sections").Elements("Item")
select new ParentItem
{
canBeSelected = false,
Key = (int)x.Attribute("key"),
Value = (string)x.Attribute("value"),
Children =
(
from t in x.Descendants("Child")
select new Child
{
Key = (int)t.Attribute("key"),
Value = (string)t.Attribute("value")
} ).ToList()
};

4、easyui combobox的绑定的默认json格式

[{
"id":1,
"text":"Folder1",
"iconCls":"icon-ok",
"children":[{
"id":2,
"text":"File1",
"checked":true
}
]

5、 linq构建conbobox的json格式

  var jsonData = from p in listP
select new
{
id = p.Key,
text = p.Value,
ischecked = selectedNode.Split(',').Contains(p.Key.ToString()) ? true : false,
children = from c in p.Children
select new
{
id = c.Key,
text = c.Value,
ischecked = selectedNode.Split(',').Contains(c.Key.ToString()) ? true : false,
} };
JavaScriptSerializer jss = new JavaScriptSerializer(); string firstNode = (selectedNode == "-1" || selectedNode.Trim() == "") ? "[{\"id\":-1,\"checked\":true,\"text\":\"--请选择--\"}," : "[{\"id\":-1,\"text\":\"--请选择--\"},";
if (selectedNode.Trim() == "noheader")
{
return jss.Serialize(jsonData).Replace("ischecked", "checked");
}
return firstNode + jss.Serialize(jsonData).Substring().Replace("ischecked", "checked");

6、前端代码

 <select class="easyui-combotree" id="txtSection">
</select> $('#txtSection').combotree({
url: "AddEditKnowledges.aspx?action=load",
valueField: 'id',
textField: 'text',
onClick: function (node) {
// alert(node.text + ":" + node.id);
if (node.text != '孕哺期') {
$("#hdnSection").val(node.id);
}
}
});

7、结果

一周代码秀之[11.18~11.24 linq2xml面向对象]的更多相关文章

  1. [18/11/11] java标识符及变量

    一.标识符规范 1.必须以字母.下划线 .美元符号开头. 即数字不能作为开头,其它位随便 2.不可以是java关键字(即保留字),  如static .class.new 等 .    注:int 年 ...

  2. [CareerCup] 18.11 Maximum Subsquare 最大子方形

    18.11 Imagine you have a square matrix, where each cell (pixel) is either black or white. Design an ...

  3. 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

    作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09     据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...

  4. github javascript相关项目star数排行榜(前30,截止2016.11.18):

    github javascript相关项目star数排行榜(前30,截止2016.11.18): 前端开源框架 TOP 100 前端 TOP 100:::::https://www.awesomes. ...

  5. 日常Java 2021/11/18

    用idea实现Javaweb登录页面 <%-- Created by IntelliJ IDEA. User: Tefuir Date: 2021/11/18 Time: 18:14 To ch ...

  6. c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <深入理解C++11:C++11新特性解析与应用>编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑.系统.深 ...

  7. (转)Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发

    http://blog.csdn.net/yerenyuan_pku/article/details/52902851 前面我们已经学会了Spring4.2.5+Hibernate4.3.11+Str ...

  8. 《Shader入门精要》第11章-11.3.1流动的河流中的offset.x的解释

    在我学习入门精要的时候,经常遇到不解释api,甚至是关键代码的实现原理. 11.3.1流动的河流中的offset.x的sin函数查了一下好像大家也都是书上原话直接复制,现在好不容易想明白了希望能帮到和 ...

  9. 2016年11月11日 星期五 --出埃及记 Exodus 20:2

    2016年11月11日 星期五 --出埃及记 Exodus 20:2 "I am the LORD your God, who brought you out of Egypt, out o ...

随机推荐

  1. 数据结构与算法(6) -- heap

    binary heap就是一种complete binary tree(完全二叉树).也就是说,整棵binary tree除了最底层的叶节点之外,都是满的.而最底层的叶节点由左至右又不得有空隙. 以上 ...

  2. Linux之内核管理及故障排错

    一.Centos6启动流程: 加电自检PSOT 引导加载器BootLoader MBR(GRUB第一阶段)||(GRUB第1.5阶段)(GRUB第2阶段) 加载内核(vmlinuz.initramfs ...

  3. jdk8--十大新特性

    https://www.cnblogs.com/dennyzhangdd/p/6722445.html 一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方 ...

  4. JavaScript学习总结(7)——JavaScript基础知识汇总

  5. 清北学堂模拟赛d3t5 c

    分析:其实就是一道数学题.如果以左下角的点为原点建立平面直角坐标系,那么点(b,a)是最容易卡住棺材的.我们求出棺材左边到点(b,a)的距离最小值,只有w小于等于这个最小值才能被拉过去.那么先求出左面 ...

  6. mysql :=和=的区别

    :=和=的区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实现行号时,必须用:= := 不只在set和update时时赋值的作用,在select也是 ...

  7. Light oj 1138 - Trailing Zeroes (III) 【二分查找 &amp;&amp; N!中末尾连续0的个数】

    1138 - Trailing Zeroes (III) problem=1138"> problem=1138&language=english&type=pdf&q ...

  8. 3D数学读书笔记——多坐标系和向量基础

    本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24662453 第一个知识点 ...

  9. POJ2599 A funny game (图博弈)

    题目链接:传送门 题意: 给定一个图,两个人从起点出发,轮流开飞机.当离开这个点后这个点 就不能使用了.假设轮到谁了谁不能飞了就输了. 必败状态非常好找,当一个人在位置s的时候与这个点相连的没有点能用 ...

  10. SuperSocket内置的命令行协议的解析

    SuperSocket\SocketBase\Protocol\TerminatorReceiveFilter.cs /// <summary> /// Filters received ...