2010-01-31 115 views
4

我想從Web應用程序傳遞動態參數(UserName)爲silverlight。我知道我在Silverlight 2.0中如何使用Asp:Silverlight標籤來實現這一點,但是在Silverlight 3.0中,Object標籤代替了Asp:Silverlight標籤,我想知道如何將動態參數傳遞到Silverlight 3.0?我知道我們可以使用init參數,但是在initparam中我們可以發送靜態參數。在初始化參數中,您可以發送參數和靜態值。我需要發送動態參數。傳遞動態參數

普萊斯幫助, 謝謝

回答

1

您可以使用Object標籤的initParams在一些信息傳遞到Silverlight應用程序和訪問它在啓動事件的StartupEventArgs

+0

在初始化參數中,您可以傳遞靜態參數。它只是param和靜態值在initparam。我需要傳遞動態參數。 – Naseem 2010-01-31 22:06:38

3

您可以動態創建SL對象控件並在其中包含該參數。如果需要,您還可以通過JavaScript與您的控件進行交互。我假設你所說的動態參數是頁面上HTML的一些值。如果該值在SL控制處於活動狀態時發生變化,那麼您將需要使用JavaScript將更改泵入SL控制。如果您從後面的代碼獲取數據,則可以使用initparms參數中的<%= SomeProperty%>。以這種方式使用時,ASP.Net會在頁面呈現時抽取該值,然後瀏覽器將其視爲靜態值,但它是動態生成的。

我希望這會有所幫助。

1

如果您尚未刪除包含它的程序集,則可以重新使用Silverlight主機控件。它仍然應該工作。

或者,在你的主機aspx頁面,添加runat="server"id<params ...>標籤:

<params runat="server" id="initParams" name="initParams" /> 

Page_Load(...)方法後面的代碼,你則可以這樣做:

this.initParams = "myKey1=something,myKey2=whatever..."; 
0

在您的Sliverlight主機頁面中,將runat =「Server」和ID添加爲「initParams」到Sliverlight Object標籤中的標籤。

在你的Page_Load()方法中。您可以將您的動態值的initParams在像下面

initParams.Attributes.Add( 「價值」, 「PAGEID = 3」);