在这技术中,利用了silverlight的一个属性:source.这个属性指示当前的silverlight的XAMl文件从哪个地方读取。
然后,我们只需要动态地从客户端来变换XAML文件,就可以动态变换前台的XAML文件了。
关键代码如下:
1 首先,在silverlight页面中做一些初始化工作:

Silverlight:动态从服务器端获取XAML来绘制前台<body onload="root_Loaded()">
Silverlight:动态从服务器端获取XAML来绘制前台    
<form id="form1" runat="server">
Silverlight:动态从服务器端获取XAML来绘制前台
<div id="slContent">
Silverlight:动态从服务器端获取XAML来绘制前台    
<script type="text/javascript">
Silverlight:动态从服务器端获取XAML来绘制前台        createSilverlight();
Silverlight:动态从服务器端获取XAML来绘制前台    
</script>
Silverlight:动态从服务器端获取XAML来绘制前台    
<script type="text/javascript">
Silverlight:动态从服务器端获取XAML来绘制前台    function root_Loaded() {
Silverlight:动态从服务器端获取XAML来绘制前台        
<%
Silverlight:动态从服务器端获取XAML来绘制前台            string 
strValue;
Silverlight:动态从服务器端获取XAML来绘制前台            if(Request.Params["ID"] 
== null)
Silverlight:动态从服务器端获取XAML来绘制前台                  strValue 
= "1";
Silverlight:动态从服务器端获取XAML来绘制前台            else
Silverlight:动态从服务器端获取XAML来绘制前台                    strValue 
= Request.Params["ID"];  
Silverlight:动态从服务器端获取XAML来绘制前台         
%>
Silverlight:动态从服务器端获取XAML来绘制前台        var ID = '
<% Response.Write(strValue); %>';
Silverlight:动态从服务器端获取XAML来绘制前台        var theHost = document.getElementById("AgControl1");
Silverlight:动态从服务器端获取XAML来绘制前台        theHost.source = "Data.aspx?ID=" + ID;
Silverlight:动态从服务器端获取XAML来绘制前台    }
Silverlight:动态从服务器端获取XAML来绘制前台    
</script>
Silverlight:动态从服务器端获取XAML来绘制前台    
</div>
Silverlight:动态从服务器端获取XAML来绘制前台    
</form>
Silverlight:动态从服务器端获取XAML来绘制前台
</body>
可以看到,当这个页面Load完成以后,调用了页面Data.aspx,并且传递了参数,然后将这个Data页面的返回结果直接赋值给了silverlight的source,这样,就直接完成了动态改变前台XAMl文件的功能。

2 看Data.aspx是怎么从服务器端返回XAMl的:
在服务器端Pageload中,
Silverlight:动态从服务器端获取XAML来绘制前台 xmlDoc.Load(Server.MapPath("template.xaml"));
Silverlight:动态从服务器端获取XAML来绘制前台Response.ContentType 
= "text/xml";
Silverlight:动态从服务器端获取XAML来绘制前台        Response.Write(xmlDoc.InnerXml);
这样,就可以直接返回给客户端一个XAMl文件。


代码下载:https://files.cnblogs.com/silverlighter/LM_ASPNET_AGC1.zip

原文章地址:http://channel9.msdn.com/Showpost.aspx?postid=304524


这段代码后来又被我篡改,成了定时从服务器端获取XAMl文件,来更新客户端的了。呵呵,原来Silvelright也能Ajax!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-21
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-17
  • 2021-11-27
  • 2021-10-30
  • 2021-10-04
  • 2022-12-23
  • 2022-01-30
相关资源
相似解决方案