一周代码秀之[11.18~11.24 linq2xml面向对象]
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面向对象]的更多相关文章
- [18/11/11] java标识符及变量
一.标识符规范 1.必须以字母.下划线 .美元符号开头. 即数字不能作为开头,其它位随便 2.不可以是java关键字(即保留字), 如static .class.new 等 . 注:int 年 ...
- [CareerCup] 18.11 Maximum Subsquare 最大子方形
18.11 Imagine you have a square matrix, where each cell (pixel) is either black or white. Design an ...
- 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09
作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09 据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...
- github javascript相关项目star数排行榜(前30,截止2016.11.18):
github javascript相关项目star数排行榜(前30,截止2016.11.18): 前端开源框架 TOP 100 前端 TOP 100:::::https://www.awesomes. ...
- 日常Java 2021/11/18
用idea实现Javaweb登录页面 <%-- Created by IntelliJ IDEA. User: Tefuir Date: 2021/11/18 Time: 18:14 To ch ...
- c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载
百度云及其他网盘下载地址:点我 编辑推荐 <深入理解C++11:C++11新特性解析与应用>编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑.系统.深 ...
- (转)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 ...
- 《Shader入门精要》第11章-11.3.1流动的河流中的offset.x的解释
在我学习入门精要的时候,经常遇到不解释api,甚至是关键代码的实现原理. 11.3.1流动的河流中的offset.x的sin函数查了一下好像大家也都是书上原话直接复制,现在好不容易想明白了希望能帮到和 ...
- 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 ...
随机推荐
- vue-cli3 中的环境变量
官方文档是这样写的: src同名文件夹下的建立 .env.[model] 配置文件 // mode:production development ... 载入的变量会对vue-cli-service ...
- 使用jquery将表单自动封装成json对象 /json对象元素的添加删除和转换
$.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function ( ...
- 原始js表单文本框初始化获取焦点和选中
发现: 1 使用dom对象.focus() 放在 window.onload 时可以 让这个DOM对象获取焦点. 2 使用DOM对象.select() 可以选中文本框中的文字. 3 不要加上on , ...
- 洛谷——P3833 [SHOI2012]魔法树
P3833 [SHOI2012]魔法树 题目背景 SHOI2012 D2T3 题目描述 Harry Potter 新学了一种魔法:可以让改变树上的果子个数.满心欢喜的他找到了一个巨大的果树,来试验他的 ...
- [luogu2154 SDOI2009] 虔诚的墓主人(树状数组+组合数)
传送门 Solution 显然每个点的权值可以由当前点上下左右的树的数量用组合数\(O(1)\)求出,但这样枚举会T 那么我们考虑一段连续区间,对于一行中两个常青树中间的部分左右树的数量一定,我们可用 ...
- 34.分组聚合操作—bucket
主要知识点: 学习聚合知识 一.准备数据 1.家电卖场案例背景建立index 以一个家电卖场中的电视销售数据为背景,来对各种品牌,各种颜色的电视的销量和销售额,进行各种各样角度的分析 ...
- win10如何进入安全模式的几种方法
首先,说一下安全模式的作用: 安全模式, 用途有很多,常见的作用有以下几点 1. 电脑可能由于安装了某些驱动或者软件,不兼容导致电脑启动不了,可以进入安全模式卸载 2. 电脑中病毒之后,可以进入安全模 ...
- 远程连接Ubuntu的桌面
参考:http://www.linuxidc.com/Linux/2016-06/132442.htm http://teliute.org/linux/TeUbt/lesson52/lesson52 ...
- RAID级别简介
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive ...
- JSON中getInt()和optInt()的区别
最近在用org.json这个包解析json的时候,发现谷歌提供两种不同的数据类型获取方法,比如说针对Int类型,提供了getInt()和optInt()两种方式,谷歌文档中的说明如下: 那么这两者有什 ...