在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
现在需要通过按钮来控制界面上的Silverlight显示的值。其方法如下。 1、首先在Silverlight中UserControl中编写一个js可以访问的方法。注意:此方法要用ScriptableMember特性。
//编写js访问silverLight 的方法,selectDate为参数 [ScriptableMember()] public void GetTrendChart(string selectDate) { DateTime tempDate = new DateTime(); if (string.IsNullOrEmpty(selectDate) || !DateTime.TryParse(selectDate, out tempDate)) { ShowInfo("日期有误"); return; } //取得资料,改变silverLight显示值,此处省略CreateTrendChart()的代码。 CreateTrendChart(selectDate); } 2、在App.xaml中注册此方法。
//在App.xaml中注册 private void Application_Startup(object sender, StartupEventArgs e) { //调用UserControl this.RootVisual = new Trend(); //注册js访问的方法 System.Windows.Browser.HtmlPage.RegisterScriptableObject("TrendMethod", this.RootVisual); } 3.在Aspx页面的调用Silverlight中增加onload事件
<%--调用siliverlight--%> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="../ClientBin/Iaddtech.Environmental.Web.Silverlight.xap" /> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="3.0.40818.0" /> <%--增加Load事件--%> <param name="onLoad" value="silverLoaded" /> <param name="autoUpgrade" value="true" /> <param name="Windowless" value="true" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration: none"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /> </a> </object> 4、编写onload事件。通过onload事件得到siliverlight对象。
<script type="text/javascript"> var silverlightObj = null; function silverLoaded(sender, args) { silverlightObj = sender.getHost(); //get Siliverlight Object } </script> 5、在Aspx页面上增加一个input。通过此input改变Silverlight显示值。此input的onclick方法为GetTrendData.
<div class="Query_button"> <input type="image" value="getDate" onclick="GetTrendData(); return false;" src="../Resources/images/see_button.jpg" /> </div> 6、在js中添加input的click事件。 通过Click事件调用Silverlight中方法
<script type="text/javascript"> //input的click事件 function GetTrendData() { //silverlightObj在上边的onload事件中已得到,selectDate为给silverlight的参数 silverlightObj.Content.TrendMethod.GetTrendChart(selectDate); } </script> 这样就可以通过js来控制Silverlight显示值了。 |
请发表评论