silverlight 从数据库获取到数据,动态生成XMLWEN文件,并获取文件进行操作
// Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建、读取、写入、删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保存大量的数据。这个空间默认是1M,如果不够的时候可以申请扩大容量。
private void PopulateWithData()
{
#region update by zxh
List<decichain> lst = Session.ChainLst.Where(m => m.OrgID.ToString() == orgid).ToList();
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
#region 动态生成XML文件
using (IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("IsoStoreFile.xml", FileMode.Create, isoStore))
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(isoStream, settings))
{
//写xml文件开始<?xml version="1.0" encoding="utf-8" ?>
writer.WriteStartDocument(false);
//写根节点
writer.WriteStartElement("Root");
foreach (decichain chain in lst.Where(m => m.UpDeci == -1).ToList())
{
writer.WriteStartElement("Node");
writer.WriteAttributeString("Name", chain.Name);
writer.WriteAttributeString("Email", chain.Email);
writer.WriteAttributeString("Phone", chain.Phone);
writer.WriteAttributeString("Position", chain.Position1);
writer.WriteAttributeString("Branch", chain.Branch);
writer.WriteAttributeString("ImgName", chain.ImgName);
AddChildrenNode(lst.Where(m => m.UpDeci == chain.ID).ToList(), writer);
//将此新节点添加到根节点下
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
}
}
#endregion
using (StreamReader reader = new StreamReader(isoStore.OpenFile("IsoStoreFile.xml", FileMode.Open)))
{
XElement dataXml = XElement.Load(reader);
foreach (XElement element in dataXml.Elements("Node"))
{
Node node = this.CreateNode(element);
node.Children.AddRange(this.GetSubNodes(element));
this.HierarchicalDataSource.Add(node);
}
}
}
#endregion
}
private void AddChildrenNode(List<decichain> Lst, XmlWriter writer)
{
foreach (decichain chain in Lst)
{
writer.WriteStartElement("Node");
writer.WriteAttributeString("Name", chain.Name);
writer.WriteAttributeString("Email", chain.Email);
writer.WriteAttributeString("Phone", chain.Phone);
writer.WriteAttributeString("Position", chain.Position1);
writer.WriteAttributeString("Branch", chain.Branch);
writer.WriteAttributeString("ImgName", chain.ImgName);
AddChildrenNode(Session.ChainLst.Where(m => m.UpDeci == chain.ID).ToList(), writer);
//将此新节点添加到根节点下
writer.WriteEndElement();
}
}
private ObservableCollection<HierarchicalNodeViewModel> GetSubNodes(XContainer element)
{
var nodes = new ObservableCollection<HierarchicalNodeViewModel>();
foreach (var subElement in element.Elements("Node"))
{
var node = this.CreateNode(subElement);
node.Children.AddRange(this.GetSubNodes(subElement));
nodes.Add(node);
}
return nodes;
}
private Node CreateNode(XElement element)
{
Node node = new Node();
node.PropertyChanged += this.Node_PropertyChanged;
node.Name = element.Attribute("Name").Value;
node.Phone = element.Attribute("Phone").Value;
node.Email = element.Attribute("Email").Value;
node.ImagePath = "/Pics/" + element.Attribute("ImgName").Value;
node.JobPosition = element.Attribute("Position").Value;
node.Branch = (Branch)Enum.Parse(typeof(Branch), element.Attribute("Branch").Value, true);
return node;
}
silverlight 从数据库获取到数据,动态生成XMLWEN文件,并获取文件进行操作的更多相关文章
- 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图
如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?
- cglib根据数据动态生成对象
最近有个任务:根据查询SQL直接导出报表 实现关键是,怎么根据sql查询的数据动态生成对象列表,想到Cglib动态代理实现 废话少说,上代码: 定义动态生成Java Bean类: import jav ...
- File操作-将数据库里的数据写入到指定路径的txt文件里
package com.Cristin.File;//将数据库里的数据写入到指定路径的txt文件里 import java.io.File;import java.io.FileOutputStrea ...
- jsp页面根据json数据动态生成table
根据需求由于不同的表要在同一个jsp展示,点击某个表名便显示某张表内容,对于java后台传给jsp页面的json形式的数据是怎么动态生成table的呢? 找了好久,终于找到某位前辈的答案,在此表示衷心 ...
- AJAX请求返回JSON数据动态生成html
1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...
- 收集 数据库的awr数据,生成报告
该脚本只是把awr报告的内容,原封不动的 展现出来,做记录 awrreport.sql 脚本内容如下: *********************************************** ...
- js将json数据动态生成表格
今天开发中遇到需要展示动态数据的问题, 具体要求是后端传来的json字符串,要在前端页面以table表格的形式展示, 其实没啥难的,就是拼接table标签,纯属体力活,于是自己写了个呆萌,保存起来,以 ...
- Rss 订阅:php动态生成xml格式的rss文件
Rss 简介: 简易信息聚合(也 叫聚合内容)是一种描述和同步网站内容的格式.使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.网络用户可以在客户端借助于支持RS ...
- Winfrom treeview 如何从多个数据表中获取数据动态生成
本文转载:http://www.cnblogs.com/VincentLuo/archive/2008/03/29/1128987.html 在 汪洋怡舟的这篇文章中[http://www.cnblo ...
随机推荐
- [解决方法] Java-Class.forName() 反射/映射子类 并转化为父类/接口
实现通过子类名称字符串 动态获取生成子类. 用于模板方法, 抽象工厂模式等. 代码实现: public TheParentClass getSubClass(String subClassName) ...
- web页面锁屏初级尝试
因为工作需要,所以在网上找了一些素材来弄这个功能.在我找到的素材中,大多都是不完善的.虽然我的也不是很完善,但是怎么说呢.要求不是很高的话.可以直接拿来用的[需要引用jQuery].废话不多说直接上代 ...
- MySQL数据库(1)
你好,我是Sundy左左,一名初级数据分析师,我在建设一个属于初学者笔记的乐园,在这里我将自己学习的东西分享出来,也许对你有用也许对你没用,但都欢迎您指出我的错误和改进的地方.我是一个初级的数据分析师 ...
- Centos7安装Nginx+PHP+MySQL
之前曾经在服务器上从头到尾搭过一次环境,但那时新手一枚,很多地方搞不定,是前辈帮忙解决的.这次独自一人在服务器上撘环境,感慨上次没有做好相关笔记,所以事后整理一下,下次再搭环境时可以轻车熟路. 一.准 ...
- Table 类(数据表基类)
只修改数据表某条记录的部分字段(究极进化): public class TableHelper { private Dictionary<string, object> temp; pub ...
- day 05字典相关内容
1.day 04内容回顾及作业讲解 列表:增 append insert extend 删 remove pop clear del 改 li[索引]='被修改的内容' li[切片]='被修改的内容' ...
- nginx反向代理后应用程序如何获取客户端真实IP
每个location中增加配置: proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_se ...
- MySQL索引的原理,B+树、聚集索引和二级索引的结构分析
索引是一种用于快速查询行的数据结构,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码.在mysql中,存储引擎用类似的方法使用索引,先在索引中找到对应值,然后根据匹配的 ...
- UnityShader实现物体被遮挡描边
之前在网上看到物体遮挡描边的功能,自己也拿来实现了一番.算作第一篇博客的开篇. 先贴出几张效果图,也是个人思路和方案的改进路线吧. ////////////////////////////////// ...
- input 特殊字符限制
ng-pattern="/^[A-Za-z0-9_,\.\u4e00-\u9fa5\s]+$/"