在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在Asp.net页面上增加Silverlight,现在需要传参数给Silverlight。下边列举一些从页面传参数给Silverlight和Silverlight中取参数的方法。 Asp.net页面传参数给Silverlight方法有:
一、通过param传参数及Silverlight中得到参数方法 1.1、传参数 在Silverlight调用页面的object中增加<param name="initParams" value="<%=Parameter%>" />。在value中设置参数,多参数用逗号分隔,如varid=001,emcstype=1。这样参数就传到了Silverlight中。代码如下,此处设Parameter值为varid=001,emcstype=1。即我们传入两个参数varid和emcstype。
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="../ClientBin/Iaddtech.Environmental.Web.Silverlight.xap" /> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="3.0.40818.0" /> <param name="onLoad" value="siliverLoaded" /> <param name="autoUpgrade" value="true" /> <param name="Windowless" value="true" /> <param name="initParams" value="<%=Parameter%>" /> <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=108181" alt="Get Microsoft Silverlight" style="border-style: none" /> </a> </object> 1.2、在Silverlight中得到传入的参数: 可以在Silverlight项目中的App.xaml中的Application_Startup事件中得到参数。如下边代码:
private void Application_Startup(object sender, StartupEventArgs e) { if (e.InitParams.Count > 1) { //参数1 string variableID = e.InitParams["varid"].ToString(); //参数2 string emcstype = e.InitParams["emcstype"].ToString(); } } 1.3、将得到参数传入到页面(userControl)方法 1.3.1利资源 在Siliverlight页面中将得到的参数放入资源中。在页面中调用资源得到参数。方法为首先在App的Application_Startup中将参数保存到资源中。
private void Application_Startup(object sender, StartupEventArgs e) { if (e.InitParams.Count > 1) { //参数1 string variableID = e.InitParams["varid"].ToString(); //参数放入资源中 App.Current.Resources.Add("varid", variableID); //参数2 string emcstype = e.InitParams["emcstype"].ToString(); //参数放入资源中 App.Current.Resources.Add("emcstype", emcstype); } //设置启动页面,此处调用了Trend.xaml this.RootVisual = new Trend(); } 在Trend(Silverlight userControl)页面中得到参数。
public partial class Trend : UserControl { public Trend() { InitializeComponent(); if (App.Current.Resources.Count>0) { //得到参数 string varidValue = App.Current.Resources["varid"].ToString(); string emcstypeValue = App.Current.Resources["emcstype"].ToString(); } } } 1.3.2利用构造函数 在Application_Startup通过页面的构造函数将参数传过去。
//得到参数并传参数到页面 private void Application_Startup(object sender, StartupEventArgs e) { if (e.InitParams.Count > 1) { //参数1 string variableID = e.InitParams["varid"].ToString(); //参数放入资源中 App.Current.Resources.Add("varid", variableID); //参数2 string emcstype = e.InitParams["emcstype"].ToString(); //参数放入资源中 App.Current.Resources.Add("emcstype", emcstype); } //设置启动页面,调用Trend.xaml页面中的带参数的构造函数 this.RootVisual = new Trend(variableID, emcstype); } 在Trend(Silverlight userControl)页面中得到参数。
//得到参数 public partial class Trend : UserControl { public Trend(string varid, string emcstype) { InitializeComponent(); //得到参数 string varidValue = varid; string emcstypeValue = emcstype; } } 1.3.3利用公共属性或变量 在App中建立公共变量或属性,此处为变量,其它页面调用App的属性或变量得到。如下边建立了ParameterList变量。
public partial class App : Application { /// <summary> /// 参数列表 /// </summary> public static IDictionary<string, string> ParameterList = new Dictionary<string, string>(); private void Application_Startup(object sender, StartupEventArgs e) { if (e.InitParams.Count > 1) { //参数1 ParameterList = e.InitParams; } } } 在Trend(Silverlight userControl)页面中得到参数。
//得到参数 public partial class Trend : UserControl { public Trend() { InitializeComponent(); App myApp = App.Current as App; //得到参数 string varidValue = myApp.ParameterList["varid"]; string emcstypeValue = myApp.ParameterList["emcstype"]; } } 二、通过Url传参数及Silverlight中得到参数方法 除了以上传参数外,还可以通过url传参数方法。此方法和我们平常得到url参数差不多。 当Url为:http://www.xxx.com?varid=001&emcstype=1时,在Trend(Silverlight userControl)页面中得到参数方法 如下:
public partial class Trend : UserControl { public Trend() { IDictionary<String, String> paraList = HtmlPage.Document.QueryString; if (paraList == null || paraList.Count < 1 || !paraList.ContainsKey("varid") || !paraList.ContainsKey("emcstype")) { ShowInfo("没有传入参数"); return; } //得到参数 string varidValue = paraList["varid"]; string emcstypeValue = paraList["emcstype"]; } } 以上只是个人的小结。
|
请发表评论