2011-09-08 38 views

回答

1

我会在这种情况下采取的方法只是留下一个地方举行<div />我想放置Silverlight对象。在页面中包含Silverlight.j的文件,并在必要时使用createObject()方法创建插件及其所有属性和initParams。

+0

我已经这样做了,但是我无法完成它的工作。我做了一个javascript函数,它调用了createObject。然后我把这个函数放在OnClientClick上的一个linkbutton中。该函数经过,没有错误,但没有Silverlight被加载。 – Nicolai

+0

当我停止误拼目标div时,它会有所帮助:) – Nicolai

2

是的,你可以做到这一点。以下代码提供了服务器控件而不是JQuery。

您可以在您的aspx页面的object标记中添加initParam属性,其中silverlight应用托管在下面。

<div id="silverlightControlHost"> 
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
     <param name="source" value="ClientBin/SilverlightApplication3.xap"/> 
     <param name="onError" value="onSilverlightError" /> 
     **<param name="initparams" id="initParams" runat="server" value="key=value"/>** 
     <param name="background" value="white" /> 
     <param name="minRuntimeVersion" value="4.0.50826.0" 
你可以拥有它设置值,像下面

<script runat="server"> 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    initParams.Attributes.Add("value", TextBox1.Text); 
} 
</script> 

然后你就可以访问initParams在价值在App启动代码在帕拉姆事件相同的aspx页面

像下面的silverlight应用程序。

private void Application_Startup(object sender, StartupEventArgs e) 
    { 
     if (e.InitParams.ContainsKey("param")) 
      MessageBox.Show(e.InitParams["param"]); 

请确保您以下列格式提供initParams的值,并检查代码中是否存在密钥。

key1=value1, key2=value2 

或者,你可以使用Silverlight.createObject并通过initParameters以及 参考链接 http://msdn.microsoft.com/en-us/library/cc265155(v=vs.95).aspx

希望这有助于。