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 ...
 
随机推荐
- leetcode-979-树
			
https://leetcode.com/problems/distribute-coins-in-binary-tree/ n个硬币随机分布在n个点上,要求每个点都拥有一个硬币,问最小的花费. 对每 ...
 - ES5 & ES6 基础
			
一.什么是ES5 附上一览表 (5.1中文 (2011.6)): http://lzw.me/pages/ecmascript/ (5.1英文PDF):http://www.ecma-internat ...
 - AngularJs在ng-click函数中获取代表当前元素的DOM对象
			
html代码 <div ng-click="test($event)">111</div> Controllers.js $scope.test= func ...
 - IE10打印预览无反应
			
1. 建议您打开IE后,按Alt键,选择”工具“-”兼容性视图设置“,将网站添加到兼容性视图列表中,看情况如何.2.internet选项-高级-启用保护模式 勾去掉 看看行不行3.按下“Windows ...
 - react .net core 发布 Access-Control-Allow-Origin  Cors
			
本案例用IIS部署 1. 在react上先publish: npm run build 生成了build文件,在此文件里添加web.config,注意httpProtocol是用来跨域的. <? ...
 - Jenkins安装使用教程
			
一.说明 持续集成:Continuous integration,CI.包括两层含义,一是指项目的每个开发人员每天都向项目代码仓库要通过git等提交他们的代码,二是指在代码提交后实现自动化的构建.部署 ...
 - git--编写好代码文件后更新到git仓库流程
			
先说一下git仓库分类: Git分为三大部分存储区域1:工作区域(就是你打开编辑器的本地代码仓库)2:提交缓存区域(使用git add 命令暂时放置的区域)3:git远程仓库(使用git push命令 ...
 - python之路-----MySql操作
			
一.概述 1.什么是数据库 数据库就是按照数据结构来组织.存储和管理数据的仓库.如我们创建的文件夹,就是一个数据库. 2.什么是mysql,oracle,access,sqlit等? 他们都是一款软件 ...
 - C# [Win32] [GDI+] [API] Load HFONT from Memory
			
// gdiplusenums.h //-------------------------------------------------------------------------- // Fo ...
 - Apache强制WWW跳转以及强制HTTPS加密跳转的方法
			
一般我会较多的使用WORDPRESS程序,其在安装的时候我们如果直接用WWW打开,或者在后台设置WWW域名则默认会强制301指向WWW站点域名.而这里有使用ZBLOG或者TYPECHO等其他博客程序则 ...