2009-09-21 64 views
3

我正在玩莫爾的Silverlight 3。我試圖將當前的用戶ID放入Silverlight 3頁面。我做了一些研究,initParams似乎是正確的選擇。麻煩的是,他們似乎使用了asp:Silverlight控件,並且SL3中沒有了。我堅持試圖讓一個變量進入initParams列表,假設這是正確的路。如何從ASP.NET代碼中獲取Silverlight 3控件的變量?

我已經開始使用名爲「MyFirstSilverlightApp」的新Silverlight 3應用程序。我在「MyFirstSilverlightAppTestPage.aspx」中添加了一個代碼隱藏頁面,以允許我執行任何聰明的操作。

我已通過添加此物體defenition的PARAMS設法硬編碼的initParam:

<param name="initParams" value="userID=id42" /> 

在App.xaml.cs,我已經添加了以下到Application_Startup:

string userID = e.InitParams["userID"]; 

我已經將它傳入我的頁面中的構造函數的參數中,然後在控件中使用它。這一切都有效。

我無法解決的是如何從我在代碼隱藏中創建的變量中獲取值到param名稱值定義中。任何幫助將受到感謝。

回答

2

一個快速骯髒的方法是在參數使用<% %>: -

<param name="intiParams" value="userID=<%=myUserID%>" /> 

我的首選解決方案是創建自己的Silverlight Web控制,可以使對象標記及其在地taylored到內容我的應用程序。

+0

啊,是的,這是有效的。我曾看過參考這些標籤,但沒有=標誌,我無法讓他們工作。就像你說的那樣,它感覺有點gr but,但它適用於此。 我從來沒有寫過一個Web控件 - 我傾向於在ASP.NET中涉足,所以我只做了基本的東西。我不認爲你可以爲這樣的事情發佈示例代碼,對嗎? – serialhobbyist 2009-09-21 12:43:00

0

將其添加到您的資源集合。

嘗試類似。

For Each item As KeyValuePair(Of String, String) In e.InitParams 
    Resources.Add(item.Key, item.Value) 
Next 
+0

我猜你還沒有明白我的問題。要麼是,要麼我沒有理解你的解決方案。 e.InitParams在Application_Startup中可用,不是嗎?我需要將參數傳入e.InitParams,而不是來自e.InitParams。我正試圖將其注入到我的Silverlight應用程序中。 – serialhobbyist 2009-09-21 12:47:37

+0

對不起,我誤解了你的帖子。這是指處理參數傳遞到您的應用程序後。 – MLT 2009-09-21 15:15:29