【2012-08-15】ArcGIS Server for Silverlight【1】 Silverlight中使用配置文件方法

      Microsoft Silverlight是微软所发展的 Web 前端应用程序开发解决方案,是微软丰富型互联网应用程序(Rich Internet Application)策略的主要应用程序开发平台之一,

以浏览器的外挂组件方式,提供 Web 应用程序中多媒体(含影音流与音效流)与高度交互性前端应用程序的解决方案。

     那么我们知道既然SL作为浏览器的一个插件,运行在浏览器的前端。是没有办法直接访问后台数据的,注意我这里说的是“直接”。在程序开发过程中,有些变量需要进行外部配置,譬如我这里做ArcGIS Server For Silverlight开发。需要对加载的图层做一个动态的配

置,以便适应不同的应用系统。这个时候我们该如何解决呢?

 

好了,既然咱们不能直接访问,那我们就想一个间接的方式。

 

接着,实例说话。


新建一个空的Silverlight工程,木有的童鞋可以到附件中下载,在此不再赘述。

 

 

  • 首先,我们来看XAP文件的承载窗体 Defalt.aspx 页面,在此我主要截取Body 代码
<!--Default.aspx -->

<body>
    <form id="form1" runat="server">
    <div>
        <asp:button ID="ConfigTest" runat="server" text="读取Config" OnClick="ConfigTest_Click" />
    </div>

     <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/SilverlightConfig.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50826.0" />
          <param name="autoUpgrade" value="true" />
          <param name="InitParams" value="vad = '变量测试'" />
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
               <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>
</body>
  • 注意这行代码 :<param name="InitParams" value="vad = '变量测试'" />
    此处的InitParms变量可以到后台代码中获取
    App.xaml.cs中
 private void Application_Startup(object sender,StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
            _configurations = e.InitParams;
            MessageBox.Show("Sl_Init");
        }
在这里我把需要传入的变量写死了,如果从后台动态获取该如何做呢,接下来我们修改 Body中代码

<body>
    <form id="form1" runat="server">
    <div>
        <asp:button ID="ConfigTest" runat="server" text="读取Config" OnClick="ConfigTest_Click" />
    </div>

     <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/SilverlightConfig.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50826.0" />
          <param name="autoUpgrade" value="true" />
         <%-- <param name="InitParams" value="vad = '变量测试'" />--%>
           <asp:Literal ID="litInitParams" runat="server" /> 
          
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>
</body>

     可以看到,body中唯一的变化就是 

 <asp:Literal ID="litInitParams" runat="server" /> 

那么在Default.aspx.cs 后台页面中可以动态的给litInitParams进行赋值,剩下的事情就简单了

 Demo下载:http://pan.baidu.com/netdisk/singlepublic?fid=1148039_474589874

 
posted @ 2012-08-15 19:04  WillWayer  阅读(672)  评论(0编辑  收藏  举报