silverlight如何向调用它的aspx页面传数据

lidanzi 2010-06-19 05:57:46
能无刷新传吗?
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
老Key 2010-06-21
  • 打赏
  • 举报
回复
可以,这个在silverlight2好像就可以
老Key 2010-06-21
  • 打赏
  • 举报
回复
可以啊。。。
jv9 2010-06-21
  • 打赏
  • 举报
回复
可以实现,因为silverlight是ajax的增强版本,实现是没问题的。参考下面的教程:

WPF/Silverlight深度解决方案:(十六)传值实现
http://silverlightchina.net/html/tips/2010/0617/1277.html

Silverlight Navigation(多页面切换、传值)
http://silverlightchina.net/html/tips/2010/0119/600.html
通过网上的搜索,感觉Silverlight Loader挺好用的,下面详细介绍一下怎么使用Silverlight Loader。 Silverlight Loader的下载地址如下:http://silverlightloader.codeplex.com/ 其实文章并不长,只有下面红色的部分才是需要你实现的代码,这里可能不能显示颜色,可以通过以下网址查看: http://hi.baidu.com/ck436/blog/item/a736edc487d6fea58226acab.html 下面首先介绍一下加载的原理: 其实就是建二个项目:一个较小,用于加载较大的项目文件,并在加载过程中给用户显示加载进度,假设为SLLoader.xap;另一个为我们的具体功能实现项目,不妨假设为LoadTarget.xap。 客户端下载程序时,首先加载SLLoader.xap,这个过程应该是比较快的,然后由SLLoader.xap一边加载较大的LoadTarget.xap,一边显示进度或动画,当加载LoadTarget.xap完毕后,就调用打开LoadTarget.xap,至些,我们的项目已加载完毕。 关于该加载过程的详细资料,可参考如下页面: How the Silverlight loader works http://www.apijunkie.com/APIJunkie/blog/page/How-the-Silverlight-loader-works.aspx Silverlight Loader Getting Started Guide http://www.apijunkie.com/APIJunkie/blog/page/Silverlight-Loader-Getting-Started-Guide.aspx Silverlight Loader Class Diagram http://silverlightloader.codeplex.com/wikipage?title=Class%20Diagram&referringTitle=Home 网上有一篇关于实现加载的介绍,基本上是翻译过来的,不是很详细,文章在此: http://silverlightchina.net/html/tips/2010/0115/588.html 下面我根据上面的几篇文章详细介绍项目的实现过程: 第一步:创建一个SLLoader.xap项目或在现有的SLLoader.xap项目中使用Silverlight Loader 1.在现有SLLoader.xap项目中使用SilverlightLoader:先下载SilverlightLoader压缩包,从下载的Release中找到SilverlightLoader.cs,并将其添加到SLLoader.xap项目中,具体实现方法:在SLLoader.xap项目中右键添加已有项,浏览找到SilverlightLoader.cs即可添加。 2.通过项目模板创建一个SLLoader.xap项目:将SilverlightLoader模板文件拷贝到VS的模板文件夹下,如My Documents\Visual Studio 2008\ProjectTemplates\Visual C#。而后就可以在新建项目时看到Silverlight Loader项目了。 第二步:实现ISliverlightLoader接口 1.添加对SilverlightLoader的引用 在App.xaml.cs中添加对命名空间SilverlightLoader的引用,实现代码: using SilverlightLoader; 在MainPage.xaml.cs中添加对命名空间SilverlightLoader的引用,实现代码: using SilverlightLoader; 2.创建动态加载外部数据的开始点 在App.xaml.cs中的Application_Startup事件中开始载入数据包,代码如下: private void Application_Startup(object sender, StartupEventArgs e) { //无需该默认语句 //this.RootVisual = new MainPage(); //建立加载页 MainPage loader = new MainPage(); //设置该加载页为加载项 this.RootVisual = loader; //建立加载数据包管理类,并开始加载目标xap, //该类的构造函数中的第三个参数为模拟加载网速, //为了模拟加载过程和调试,可以通过设置该参数来模拟加载速度,单位为Kb, //当设该参数为0时,则采用真实带宽加载目标xap。 PackageDownloadManager pdm = new PackageDownloadManager(loader, e.InitParams, 0); } 3.在MainPage.xaml.cs中实现ISliverlightLoader接口 有如下几个ISilverlightLoader接口需要添加,也就是在下面几接口中实现加载进度的交互显示: // 初始化加载须加载的数据包列表 void initCallback(List packageSourceList); // 回调函数,用于标识开始加载数据包 void downloadStartCallback(Uri packageSource); // 回调函数,用于标识加载进度发生变化 void downloadProgressCallback(Uri packageSource, DownloadProgressEventArgs eventArgs); // 回调函数,用于标识加载数据包结束 void downloadCompleteCallback(Uri packageSource, DownloadCompleteEventArgs eventArgs); MainPage.xaml.cs中的实现代码如下,我现在把MainPage.xaml.cs的代码全部粘上,红色部分为所添加代码: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using SilverlightLoader; namespace SLLoader { //注意此处的类继承:SilverlightLoader.ISilverlightLoader public partial class MainPage : UserControl, SilverlightLoader.ISilverlightLoader { public MainPage() { InitializeComponent(); } #region ISilverlightLoader Members //初始化加载须加载的数据包列表 void ISilverlightLoader.initCallback(System.Collections.Generic.List packageSourceList) { } //回调函数,用于标识开始加载数据包 void ISilverlightLoader.downloadStartCallback(Uri packageSource) { LoadProgress.Text = "加载初始化..."; } //回调函数,用于标识加载进度发生变化 void ISilverlightLoader.downloadProgressCallback(Uri packageSource, DownloadProgressEventArgs eventArgs) { float offset = ((float)eventArgs.ProgressPercentage * 4 / 100f) * 1000; TimeSpan ts = new TimeSpan(0, 0, 0, 0, (int)offset); //显示加载进度,例如下面二行代码中LoadProgress为一个Textblock,LoadProgressBar为一个进度条,则可以使用下面语句显示进度 LoadProgress.Text = eventArgs.ProgressPercentage.ToString() + "%"; LoadProgressBar.Value = eventArgs.ProgressPercentage; } //回调函数,用于标识加载数据包结束 void ISilverlightLoader.downloadCompleteCallback(Uri packageSource, DownloadCompleteEventArgs eventArgs) { LoadProgress.Text = "加载完成"; XapUtil.setCurrentXapFile(packageSource); } #endregion } } 第三步:在HTML页面asp:Silverlight控件设置初始载入界面与载入目标 该步就是在HTML或asp:Silverlight控件中加入对SLLoader.xap的调用,并将LoadTarget.xap的名字做为参数递给SLLoader.xap,以便加载, 可以看出,在建立整个项目的过程中,SLLoader.xap和LoadTarget.xap并不需要打交道,只在HHTML或asp:Silverlight控件设置中才把二者联系起来。 1.HTML中的设置方法: Get Microsoft <em>Silverlight</em> 注意SLLoader.xap和LoadTarget.xap的位置,此时把HTML文件、SLLoader.xap和LoadTarget.xap放在同一目录下即可实现加载。 2.在asp:Silverlight控件中设置的方法 <asp:Silverlight ID="Xaml1" runat="server" Source="~/SLLoader.xap" MinimumVersion="2.0.31005.0" Width="550" Height="400" InitParameters="LoaderSourceList=LoadTarget.xap" /> 与在HTML中通过Object对象设置的原理相同。 3.如果此时编译SLLoader.xap项目,可能通不过,提示缺少对System.Runtime.Serialization.Json的引用, 为解决此问题,需要添加如下三个引用,参考文章:http://www.cnblogs.com/Blackie/archive/2009/07/09/1520080.html 1.System.Runtime.Serialization 2.System.ServiceModel 3.System.ServiceModel.Web 至此,一个加载功能制作完毕。 注意事项: (1)App和MailPage都需要添加对命名空间SilverlightLoader的引用; (2)PackageDownloadManager类构造函数中的第三个参数需要更改,看前面的代码注释,在此处将参数改为一个较小的值,即可减小加载速度,以便查看加载效果; (3)需要添加以下三个引用,只有同时添加,才能正确引用System.Runtime.Serialization.Json: 1.System.Runtime.Serialization 2.System.ServiceModel 3.System.ServiceModel.Web 目前已知的问题: 实现该加载功能的目的就是不想显示Silverlight默认的那个蓝色整圆圆的加载动画, 但如果网速过慢,还是会显示加载SLLoader.xap的动画,另外SLLoader.xap加载完LoadTarget.xap后,打开LoadTarget.xap的过程中也可能会出现默认的那个加载动画,虽然只是一瞬间,不知道该怎么屏蔽这个默认的动画,请大家支招。 还请大家教我实现屏蔽默认加载动画的方法,我的邮箱:ck436#126.com,把#改为@
驰骋工作流引擎源码 产品名称: 驰骋.net工作流程引擎. 运行环境: BS结构. windows xp, windows server. win7 IIS6.0以上. .net4.0. Office2007 (如果需要单据打印.) 开发语言: VS2010, .net4.0 c#.net. 客户端: FireFox 3.0以上. IE7+,或者使用IE内核的浏览器. 组成部分: 流程图形设计器(有:cs版本与bs版本)/流程前台运行程序(BS结构)/流程服务(CS)/web的方式的表单设计器/BRP工具 基本功能: 图形化流程设计/智能表单web定义免程序开发/级联下拉框/流程轨迹/单据自定义打印/邮件短信工作到达通知/自动任务分配/支持sdk模式开发/简洁集成/消息侦听/丰富事件接口/报表定义/工作量分析/绩效考核/手机访问/支持sqlserve,oracle,mysql,access数据库 CCFlow功能: 懂管理就会开发基本流程,为单位流程管理系统,会SQL就能达到中级开发水平解决复杂的逻辑问题与其它系统耦合,有程基础就可以使用sdk做高级的开发. 程序运行组件清单. ***************************************************************** 1. .net 4.0 2, owc11.exe 用于生成数据图形分析。 3, SaveAsPDFandXPS.exe 生成pdf文件的组件.【选装】 4, iewebcontrols.msi 控件. 5, vs2010 开发环境(不进行二次开发不必要安装) ***************************************************************** ccflow 开源程序文件清单: ***************************************************************** 组件目录 D:\ccflow\Components 组件目录. D:\ccflow\Components\BP.En30 -- 底层基类. D:\ccflow\Components\BP.Web.Controls30 --bs控件层. D:\ccflow\Components\BP.WFV4 --工作流程引擎层 D:\ccflow\Components\BP.Win32.Controls --cs控件层. D:\ccflow\DLL -- 第三方组件中需要调用dll. D:\ccflow\Documents - 文档 D:\ccflow\VisualFlow --bs工作流程引擎前台. D:\ccflow\VisualWorkFlowServices - 流程服务程序. D:\ccflow\VisualFlowWebDesigner - silverlight流程设计器. D:\ccflow\CCFlowWord2007 - VSTO公文流程. D:\ccflow\ExpandingApplication 行业应用通用代码。 D:\ccflow\Tools 工具 关于: ccflow前台目录结构. D:\ccflow\VisualFlow\Comm --通用功能层. D:\ccflow\VisualFlow\Data -- 应用程序数据目录. 包含一些xml,等等。 D:\ccflow\VisualFlow\Data\Install 与安装有关系的文件 D:\ccflow\VisualFlow\Data\JSLib 系统javascript 函数库。 D:\ccflow\VisualFlow\Data\Language 语言包(完善中) D:\ccflow\VisualFlow\Data\Node cs流程设计器节点类型(cs流程设计器不在发展) D:\ccflow\VisualFlow\Data\XML xml配置文件不仅仅ccflow使用,bp框架也使用它。 用户数据目录。 D:\ccflow\VisualFlow\DataUser -- 用户数据目录。 D:\ccflow\VisualFlow\DataUser\Bill 单据打印生成数据. D:\ccflow\VisualFlow\DataUser\CyclostyleFile 单据模板数据 D:\ccflow\VisualFlow\DataUser\DtlTemplete 导入明细表模板文件. D:\ccflow\VisualFlow\DataUser\EmailTemplete 自定义邮件发送格式文件. D:\ccflow\VisualFlow\DataUser\JSLib 用户自定义函数库 D:\ccflow\VisualFlow\DataUser\JSLibData 用户自定义函数生成文件。 D:\ccflow\VisualFlow\DataUser\Log 系统日志文件 D:\ccflow\VisualFlow\DataUser\ReturnLog 退回日志文件. D:\ccflow\VisualFlow\DataUser\Siganture 签名文件. D:\ccflow\VisualFlow\DataUser\Style 用户自定义风格文件。 D:\ccflow\VisualFlow\DataUser\UploadFile 表单附件上文件,单附件,与多附件。 D:\ccflow\VisualFlow\DataUser\XML 用户系统配置文件。 D:\ccflow\VisualFlow\WF\DocFlow -- 公文流程(目前还不是很完善) D:\ccflow\VisualFlow\OA -- 通用oa 组件(目前还不是很完善) D:\ccflow\VisualFlow\SDKFlowDemo -- sdk开发模式的案例. D:\ccflow\VisualFlow\WF\WAP -- 手机访问前台代码目录. (说明:对C级用户有效) D:\ccflow\VisualFlow\WF -- ccflow前台应用程序层(主要的功能都是在这个目录里面) D:\ccflow\VisualFlow\WF\Admin - 对ccflow的管理比如设计方向条件.报表定义... D:\ccflow\VisualFlow\WF\MapDef - 表单定义. D:\ccflow\VisualFlow\ClientBin - silverlight 程序.。 CCFlowDesigner.xap流程设计器,CCForm.xap表单设计器。 注意: 源码有详细使用文档,可以下载查看。 用户名是:51aspx 密码是 51aspx 管理员用户名是:admin 密码是 pub 默认添加的用户的密码均是pub 特此声明,网站版权归开发公司所有,此源码仅供学习交流之用,如有违者后果自负
方法1:   向嵌入aspx页面silverlight对象添加imnitParams参数,它的value是与querystring类似的键值对,多个参数用逗号隔开,aspx后台代码如下所示:

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧