Silverlight解析JSON数据(上) —— javascript调用Silverlight中 |
|---|
SilverCool
等级:版主
文章:70
积分:58
注册:2007年10月10日
威望:13 点
|
小 大 楼主 个性首页 QQ 邮箱 主页 发短信 加为好友 |
|
[2007-10-25 23:31:37|作者:驰清] Silverlight解析JSON数据本文分为两个部分,第一部分介绍如何通过网页中的javascript调用Silverlight中的函数,实现传递数据的方法。第二部分介绍Silverlight解析JSON数据的方法。 (1)在Page.xaml.cs中,将Page设为[Scriptable],并加入using. System.Windows.Browser; [Scriptable] public partial class Page : Canvas (2)在Silverlight中注册可被外部javascript调用的对象。 添加Page()函数,在函数内部注册Scriptable对象 public Page() 这样一来,就可以在网页中使用javaScript,通过Chiqing这个对象来调用Silverlight控件中被标为[Scriptable]的方法了。{ WebApplication.Current.RegisterScriptableObject("PipeLineControl", this); } (3) 在Silverilght中标明可以被网页中的javascript调用的函数。 在Page.cs 中添加如下代码 [Scriptable] public void GetJSONData(string jsonString) { } (4)下面就是要通过javascript来调用刚才定义的GetJSONData函数了. 打开TestPage.html.js,在CreateSilverlight函数中添加OnLoad事件,并添加事件响应函数OnLoaded。 在OnLoaded函数中添加如下代码,使得在Silverlight控件初始化完毕后,向其传递字符串数据("Hello world")。 function createSilverlight() (5)在GetJSONData 函数中设置断点,编译后就可以发现该函数被调用了,传递来的jsonString,就是在(4)中构造的字符串数据。{ Silverlight.createObjectEx({ source: "Page.xaml", parentElement: document.getElementById("SilverlightControlHost"), id: "SilverlightControl", properties: { width: "100%", height: "100%", version: "1.1", enableHtmlAccess: "true" }, events: { onLoad: OnLoaded } }); function OnLoaded(sender,args) { var control = document.getElementById("SilverlightControl"); control.Content.PipeLineControl.GetStringData("Hello World"); } } 此处需要注意的是,CreateSilverlight函数中的OnLoad事件是在Silverlight中Page_Loaded事件触发之后触发的。所以数据的读取不能写在Page_Loaded中。 本文的范例可从www.silverlighting.net下载 |
|
|
|
|
1
1 | 10
1/1 页
|