動的InitParamsnパラメータの入力方法
3555 ワード
sl 3では過去のaspをNetsilverlight制御が削除されたため、aspxページでsilverlightコントロールでバックグラウンドにパラメータを動的にxapファイルに入力することはできません.
解決策は次のとおりです.
1.展示ページでaspを使いました.NetのLiteralコントロール.htmlコードをロードできます.
2.テストのために、バックグラウンドでInitParamsnパラメータを入力する動作をしなければなりません.ここで私は名前idのパラメータを入力しました.その値はjacで、コードは以下の通りです.
3.今slの中でどのようにInitParamsのパラメータを受信して、silverlightプロジェクトの中で私達はapp.xaml.csで定義する前にInitParamsパラメータを取得します.
4.slでInitParamsを正しく受信したかどうかをテストするために、Mainpageにいます.xaml.csで表示する動作をします.
解決策は次のとおりです.
1.展示ページでaspを使いました.NetのLiteralコントロール.htmlコードをロードできます.
1: <div id="silverlightControlHost">
2: <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
3: <param name="source" value="ClientBin/SilverlightApplication18.xap"/>
4: <param name="onError" value="onSilverlightError" />
5: <param name="background" value="white" />
6: <param name="minRuntimeVersion" value="3.0.40624.0" />
7: <param name="autoUpgrade" value="true" />
8: <asp:Literal ID="ParamInitParams" runat="server"></asp:Literal>
9: <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
10: <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
11: </a>
12: </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
13: </div>
2.テストのために、バックグラウンドでInitParamsnパラメータを入力する動作をしなければなりません.ここで私は名前idのパラメータを入力しました.その値はjacで、コードは以下の通りです.
1: protected void Page_Load(object sender, EventArgs e)
2: {
3: if (!IsPostBack)
4: {
5: ParamInitParams.Text =
String.Format(@"<param name=""InitParams"" value=""{0}"" />", "id=jac");
6: }
7: }
3.今slの中でどのようにInitParamsのパラメータを受信して、silverlightプロジェクトの中で私達はapp.xaml.csで定義する前にInitParamsパラメータを取得します.
1: internal IDictionary<string, string> getdata;
2: private void Application_Startup(object sender, StartupEventArgs e)
3: {
4: this.RootVisual = new MainPage();
5: getdata = e.InitParams;
6: }
4.slでInitParamsを正しく受信したかどうかをテストするために、Mainpageにいます.xaml.csで表示する動作をします.
1: public MainPage()
2: {
3: InitializeComponent();
4: Loaded += new RoutedEventHandler(MainPage_Loaded);
5: }
6:
7: void MainPage_Loaded(object sender, RoutedEventArgs e)
8: {
9: App myapp = (App)App.Current;
10: MessageBox.Show(myapp.getdata.First().Key + ":" + myapp.getdata.First().Value);
11: }