Silverlight 页面传值问题(转)
共有两种方式来传递初始化参数
1)在html或者aspx页面中object对象中加入一下代码
参数格式:参数名 = 值,参数名 = 值,...
<param name="initParams" value = "name = John , sex = m"/>
取得参数的方法
在app页面中
StringBuilder txtMsg = new StringBuilder();
foreach (string key in e.InitParams.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, e.InitParams[key])).Append("\r");
}
MessageBox.Show(txtMsg.ToString());
在任意页面中
StringBuilder txtMsg = new StringBuilder();
foreach (string key in App.Current.Host.InitParams.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, App.Current.Host.InitParams[key])).Append("\r");
}
MessageBox.Show(txtMsg.ToString());
2)在URL中传递参数也可以用表单传递参数
http://localhost:45876/Silverlight4TestPage.aspx?name=Cena&age=100
取得参数值
txtMsg = new StringBuilder();
foreach (string key in HtmlPage.Document.QueryString.Keys)
{
txtMsg.Append(String.Format("{0} : {1}", key, HtmlPage.Document.QueryString[key])).Append("\r");
}
if (!"".Equals(txtMsg.ToString()))
{
MessageBox.Show(txtMsg.ToString());
}
另外:
<param name="initParams" value = "age = 24" />
<param name="initParams" value = "name = John , sex = m"/>
在IE和谷歌浏览器中解析的顺序不一样,IE是第一条参数而谷歌是第二条参数
但是无论哪种浏览器都只一条记录
转自:http://www.cnblogs.com/Zyang/archive/2012/01/11/InitParams.html