aspx向silverlight传值
原文:http://www.cnblogs.com/lensso/archive/2010/07/27/1785844.html
方法1:
向嵌入aspx页面的silverlight对象添加imnitParams参数,它的value是与querystring类似的键值对,多个参数用逗号隔开,aspx后台代码如下所示:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/Para_from_aspx2sl.xap"/> <param name="onError" value="onSilverlightError"/> <param name="background" value="white"/> <param name="minRuntimeVersion" value="3.0.40624.0"/> <param name="autoUpgrade" value="true"/> <param name="initParams" value="id=114,name=lensso"/> <!--或以如下形式给value赋值--> <!--<param name="initParames" value="id=<%# Request.Querystring["id"]%>"/>--> </object>
至此完成了aspx页面的赋值工作,在silverlight中的Application_Startup事件处理函数中可以利用事件变量来取得该值,(App.Xaml.cs)代码如下:
privatevoid Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual =new MainPage();
MessageBox.Show(e.InitParams["id"]+e.InitParams["name"]);
}
方法2:
1.下载System.Web.Silverlight.dll(可以去网上搜一下)
2.将下载的dll引用进web工程
3.在aspx页面添加注册代码,如下:
<%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls" TagPrefix="sl"%>
4.添加silverlight控件,代码如下:
<sl:Silverlight id="slobj" runat="server" source="~/ClientBin/Para_from_aspx2sl.xap" version="2.0" width="100%" height="100%"></sl:Silverlight>
5.添加scriptmanager,代码如下
<asp:scriptmanager ID="Scriptmanager1" runat="server"></asp:scriptmanager>
6.aspx后台代码传值,代码如下:
slobj.InitParameters ="id=123,name=hello";
7.silverlight中取得aspx传过来的值,代码如方法1中。
<注>如果你想把配置放在web.config中,在aspx的后台添加配置,而不想使用sl控件,可以使用aspx的literal控件,如下方法:
web.config配置
<appSettings>
<add key="AuthenticationAddress" value="http://192.168.104.133:13999/SysAdmin/Runtime/AuthenticationService.svc"/>
</appSettings>
aspx中的写法如下
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="100%" height="100%">
<param name="source" value="ClientBin/OIU.xap"/>
<param name="onError" value="onSilverlightError"/>
<param name="background" value="white"/>
<param name="minRuntimeVersion" value="3.0.40818.0"/>
<param name="autoUpgrade" value="true"/>
<asp:Literal ID="slInitParams" runat="server"></asp:Literal>
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration: none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight"
style="border-style: none"/>
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px;
border: 0px"></iframe>
注意第8行添加的控件
aspx后台这么写
StringBuilder sb =new StringBuilder();
sb.Append(" <param name=\"InitParams\" value=\"");
sb.Append(string.Format("AuthenticationAddress={0}", ConfigurationManager.AppSettings["AuthenticationAddress"]));
sb.Append( "\"></param>");
slInitParams.Text =sb.ToString();
最好是将向SL传值的代码写在前台,这样的话就可以把Sl嵌入到其它已经发布了的项目中,而不用重新编译,具体代码可以如下:

<Page Language="C#"/>//纯前台页面,不添加页面后台文件 <Script runat="server">
//将页面的Page_Load事件写在前台,这样的话就SL就是一个纯前台的模块了
Protected Page_Load(object sender,EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append(" <param name=\"InitParams\" value=\"");
sb.Append(string.Format("AuthenticationAddress={0}", ConfigurationManager.AppSettings["AuthenticationAddress"]));
sb.Append( "\"></param>");
slInitParams.Text =sb.ToString();
}
</Script>

同样可以实现动态配置silverlight的服务,需要注意的是,因为SL是作为客户端插件运行的,它永远是运行在客户端,不像aspx是向服务端发送请求,所以如果服务是映射到外网了的话,配置的服务地址一定要是服务的外网地址。
aspx向silverlight传值的更多相关文章
- .aspx.cs传值与取值
1:.aspx中post传值 $.post("ABP_ExchangeRatelz.aspx", { option: "isdelete", Ori_Curre ...
- asp.net 页面跳转传值的几种方式
参考地址: http://blog.csdn.net/zzzzzzzert/article/details/8486143 protected void Button1_Click(object se ...
- ASP三种常用传值方式:
ASP 页面(两个aspx页面)传值方式:背景: 两个aspx 页面valuepage.aspx tbusername tbpwdobtainvalue.aspx tbusername tbpwd 1 ...
- Prism 4 文档 ---第10章 Silverlight和WPF之间共享代码
本主题帮助你理解来自Prism的多目标和它的优缺点.多目标的代码针对两个不同的平台有大致相同的代码库.这允许同时保持代码尽可能多一样能够产生针对两种不同技术的二进制文件.在这种情况下,本节介绍 ...
- MVC HtmlHelper用法(一)@Html.BeginForm的使用总结
1.@using(Html.BeginForm()){} //提交到当前页面 2.@using ...
- web前端技术归类
1.以屏幕可用宽和高的百分比来定义弹出框的宽和高 var trueWidth = $(top.window).width() * 0.9;var trueHeight = $(top.window). ...
- MVC把随机产生的字符串转换为图片
原文:MVC把随机产生的字符串转换为图片 Insus.NET在这篇中<在ASP.NET MVC应用程序中随机获取一个字符串>http://www.cnblogs.com/insus/p/3 ...
- Prism 4 文档 ---第8章 导航
作为同用户具有丰富的交互的客户端应用程序,它的用户界面(UI)将会持续不断的更新来反映用户工作的当前的任务和数据.用户界面可以进行一段时间相当大的变化作为用户交互的应用程序中完成各种任务.通过 ...
- Prism 4 文档 ---第5章 实现MVVM模式
MVVM模式有助于清楚的区分应用程序界面的业务层和展现层.保持一个清晰的应用程序逻辑和UI分离有助于处理开发和设计过程中大量的问题,同时,使得应用程序的测试,维护,和扩展更加容易.MVVM也可 ...
随机推荐
- 【MFC两种视频图像採集方法】DirectShow与Opencv
效果图: DirectShow採集核心代码: 创建线程调用该函数,採集图像通过x264解码封装rtmp协议包.推送至FMSserver,可实现视频直播 UINT __stdcall StartVide ...
- (读书笔记).NET大局观-.NET语言(1)
通用语言运行时 通用语言运行时被明确设计为支持多种语言,一般而言,建立于CLR之上的语言可以获得共同的良好处理.通过一个宏大的核心语义集,CLR还界定了一个以它为基础的典型编程语言的大体部分.例如对于 ...
- 找工作笔试面试那些事儿(8)---常问的CC++基础题
这一部分是C/C++程序员在面试的时候会被问到的一些题目的汇总.来源于基本笔试面试书籍,可能有一部分题比较老,但是这也算是基础中的基础,就归纳归纳放上来了.大牛们看到一笑而过就好,普通人看看要是能补上 ...
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- 提领NULL指针
通常之中导致程序崩溃的最重要的原因是试图取消引用NULL指针.正如在以前的文章中指出,智能指针RefCountPtr和ScopedPtr它提供了一个诊断的执行时间. 但,并不是所有的指针是所有的对象都 ...
- hdu1330(递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1330 分析:经典问题,n 块相同的木板重叠,最多能够伸出桌面多远 对于n张卡片的最佳摆法,我们只需要在 ...
- android中更改spinner、AutoCompleteTextView切割线的颜色
话说去除切割线的方法找了非常久也没找到,最终发现了更改切割线的方法 spinner和AutoCompleteTextView提示列表中间有一条黑色的切割线.想要改变它的颜色值,就要重写style. 1 ...
- 【足迹C++primer】30、概要(泛型算法)
概要(泛型算法) 大多数算法的头文件中定义algorithm在. 标准库也是第一个文件numeric它定义了一套通用算法. #include<iostream> #include<n ...
- Linux下玩转Dota2
Dota2是一款颇为风靡的即时战略类游戏,去年官方就支持Mac和Linux了,对于习惯Mac和linux平台的孩子们来说,简直感动的泪流满面. 当然,也简直是linux程序猿的福音啊啊! 与Win8. ...
- C#-循环滚动字幕,timer,从左至右,从右至左,暂停---ShinePans
Lable的Left属性是能够更改的,可是 Right属性不能够更改,所以我们能够利用 这个特点做自加 自减运算 using System; using System.Collections.Gene ...