我想将web应用程序中的动态参数(UserName)传递给silverlight。我知道如何在Silverlight 2.0中使用Asp:Silverlight标签,但是在Silverlight 3.0中有Object标签而不是Asp:Silverlight标签,我想知道如何将动态参数传递给Silverlight 3.0?我知道我们可以使用init param,但是在initparam中我们可以发送静态param。在init param中,您可以发送参数和静态值。我需要发送动态参数。
请求帮助, 谢谢
答案 0 :(得分:3)
您可以动态创建SL对象控件,并在其中包含参数。如果需要,您还可以通过JavaScript与您的控件进行交互。我假设您所说的动态参数是页面上HTML的一些值。如果在SL控件处于活动状态时值发生变化,则需要使用JavaScript将更改泵送到SL控件。如果您从后面的代码中获取数据,则可以使用<%= SomeProperty%>在initparms参数中。当以这种方式使用它时,ASP.Net将在呈现页面时抽出值,然后浏览器将其视为静态值,但它是动态生成的。
我希望这会有所帮助。
答案 1 :(得分:1)
您可以使用Object标记的InitParams将一些信息传递到Silverlight应用程序,并在Startup事件的StartupEventArgs中访问它。
答案 2 :(得分:1)
如果尚未删除包含Silverlight主机控件的程序集,则可以重用Silverlight主机控件。它仍然应该工作。
或者,在您的主机aspx页面中,将runat="server"
和id
添加到您的<params ...>
标记中:
<params runat="server" id="initParams" name="initParams" />
在Page_Load(...)
方法背后的代码中,您可以执行以下操作:
this.initParams = "myKey1=something,myKey2=whatever...";
答案 3 :(得分:0)
在Sliverlight主机页面中,将runat =“Server”和ID作为“initParams”添加到Sliverlight对象标记中的标记中。
在Page_Load()方法中。您可以将动态值分配给 initParams Like Below
<强> initParams.Attributes.Add( “值”, “PAGEID = 3”); 强>