Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题
2014-10-26 17:36
1146 查看
1.xml/json数据解析
(1)xml数据解析使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应节点的数据集合,再通过Element这个方法对数据集合进行筛选,获得指定数据。
参考: http://msdn.microsoft.com/zh-cn/library/system.xml.linq.xdocument(v=vs.110).aspx
(2)json数据解析
silverlight里可以直接将获取的json数据转化为JsonObject。
要获得每一个节点数据集合中子节点的数据,只需要将父节点数据转化为JsonObject进行筛选即可。
2.MVVM下实现多级树形结构TreeView
通过使用HierarchicalDataTemplate这种数据模板实现,MVVM下使用,设计好数据绑定集合中的子类即可主要是绑定的数据集合中增加了一个对应子节点的数据源集合,
这里根节点没有从数据库中取,直接在代码中指定了名称为“组织机构树”的根节点,
需要注意的是从数据库中读取的数据是由父节点、子节点对应关系,有了从属关系才能知道节点间如何对应。
参考:/article/5139636.html
http://www.cnblogs.com/prolove2/archive/2012/06/22/2558405.html
/article/5154188.html
http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode
3.忽视引用类型导致数据绑定错误
应用场景:两个下拉选择框,第一个下拉框选择的内容变化,第二个下拉框显示的数据随之变化,实际上就是绑定了两个comobox的数据集合,这两个集合之间有对应关系。易错点:根据第一个下拉框选择项selectItem的值,每次都重新实例化第二个下拉框的绑定集合并赋值,这时第二个下拉框里的显示是错误的或者没有数据显示。原因是:绑定实际上是一个引用类型传值的过程,重新实例化绑定集合后,对应的绑定数据集合的内存地址已经发生变化,自然就找不到数据源了。4.通过流或动态空间加载图片
两种方式都已经获得空间信息,可以加载到地图上。通过流的方式,即通过服务器图片地址直接下载图片到客户端再加载的方式
通过动态空间技术加载
动态空间介绍:http://tm.arcgisonline.cn/2011/1209/386.html
5.虚拟目录设置
应场景,两台服务器A、B,客户端可以访问A,不能访问B,服务器A与B之间可以互相访问,现在客户端需要从服务器B下载数据,如何解决呢?通过在服务器A中设置虚拟目录指向服务器B,客户端通过服务器A来获得服务器B中的数据即可。参考:
IIS中设置虚拟目录http://jingyan.baidu.com/article/67508eb4dfc1e69ccb1ce44b.html
Tomcat中设置虚拟目录http://blog.csdn.net/songuooo/article/details/8455298
6.silverlight安全机制引发的问题
silverlight发布后程序,在浏览器打开运行时,是在沙盒中运行,也就是不能访问客户端所在机器的资源,例如会出现全屏时输入框(TextBlock)不能输入、以及选择文件上传时提示SecurityException(在本地调试不会出现问题,发布后使用才出现)全屏状态输入框不能输入,试过Out-of-Browser的设置,依然无效,目前只能使用浏览器全屏模式来达到全屏效果。
选择文件上传时提示SecurityException,需要注意不要使用类似IO之类的东西,因为默认是没有访问客户端所在计算机数据的权限,只有做类似打开文件选择窗口的操作,即使用OpenFileDialog里的属性、方法才行,OpenFileDialog就相当于用户进行了授权信任操作,允许访问计算机资源。
7.WebClient缓存问题
应用场景,需要修改服务器上的数据并更新,但是WebClient请求的数据有缓存,获得的数据不是最新的,用了一个简单粗暴的办法,即在请求地址后面加上随机字符串,相当于每次都重新请求一次,也就不存在缓存的问题了。相关文章推荐
- Silverlight项目笔记3:Silverlight RIA Services缓存引发的问题
- Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)
- 解决html 加载同名图片或flash存在数据缓存问题
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
- 在jsp中拼xml格式数据问题:XML 解析错误:XML 或文本声明不在实体的开头
- Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))【附带实例源码】
- iOS网络编程开发笔记1—JSON和XML数据解析
- MVVM绑定多层级数据到TreeView并设置项目展开
- 转载 Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))
- A网站引用B服务器虚拟目录文件导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
- Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
- « AFNetworking 图片的本地缓存问题 Get application bundle seed ID in iOS » AFNetworking 使用总结 (用法+JSON解析)
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- 解决Flex4双向绑定因数据类型不同而出现编译错误问题
- apache安全设置——某个目录只允许访问图片,其他类型文件不允许访问
- Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))【附带实例源码】
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
- Silverlight实用窍门系列:1.Silverlight读取外部XML加载配置---(使用WebClient读取XAP包同目录下的XML文件))【附带实例源码】
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- 关于swift里面xml数据的解析设置问题