silverlight 制作图表首页(公司项目)参考easysl

在web项目中调试silverlight的时候,经常是web项目中的断点有效,但是不能跳转到silverlight中的断点,跟easysl程序做对比,发现easysl也不能调试:报以下错误:

无法调试,未安装“silverlight”托管调试包.”GOOGLE的很多方法,并且最终都不行.自己尝试以下解决方法:

1.卸载掉"microsoft silverlight"和"microsoft silverlight 3 tools  for  visual studio 2008 sp1".,重启机器.如图:

 2.下载silverlight4_tools.exe,并且后缀名修改为.zip解压缩,直接装

 silverlight_developer.exe 文件.

3.安装silverlight3_tools.exe工具.

安装完成以后,EASYSL不报错,但是还是不能调试.选中调试的WEB项目,右键属性,在web选项中,调试器标签下选中“asp.net”和“silverlight”.如图:

重新编译silverlight项目,并且调试。

项目记录:

SLUI 是所有silverlight的 项目集合。

1.web页与silverlight之间参数交互是通过在web页中的控件增加属性,如:

////增加属性,在SILVERLIGHT读取HTML页面的下拉框 的值
  ddlYear.Attributes.Add("year", ddlYear.SelectedValue);

  ddlMonth.Attributes.Add("month", ddlMonth.SelectedValue);

silverlight页读取增加的属性值:

using System.Windows.Browser;

 HtmlDocument doc = HtmlPage.Document;

HtmlElement element =  doc.GetElementById("ddlYear");
 string stryear = element.GetAttribute("value").ToString();

 element = doc.GetElementById("ddlMonth");

  string strmonth = element.GetAttribute("value").ToString();

2.参考 easysl的使用方法:

//UI层 page.xmal.cs
//初始化一个task变量

private Task getProductListTask;

private TaskManager getProductListTaskManager;

=================================================================

//在页面程序初始化

public homepage()

{
     this.getProductListTask= newTask();
     //初始化请求数据
     getProductListTask.BeforeStart+=newEventHandler<EventArgs>(getProductListTask_BeforeStart);
     //回调时更新界面
     getProductListTask.Callback+=newGetDataAsyncCompleted(GetProductList_CallBack);

}

=============================================================================================

//执行方法
voidgetProductListTask_BeforeStart(objectsender,EventArgse)
{      
   Tasktask=senderasTask;
   task.MethodName="GetProductList"; //对应于数据层的方法名
   task.ReturnType=typeof(List<Product>);//对应于数据层的返回类型
   task.SetParameter("count",int.Parse(this.count.Text));//对应于数据层的方法的参数
}

//回传返回的值
publicvoidGetProductList_CallBack(Responseresponse)
{
    List<Product>product=reponse.dataasList<Product>;
    //updateUI.
}
============================================================================================    
//所以你需要在数据访问层增加对应的方法(指EasySL.Service项目中的“DataService.Method.cs”书写以下方法):
publicList<Product>GetProductList(intcount)
{
    //getdatafromxmlordatabase
}

==================================================================================

private void UserControl_Loaded(object sender, RoutedEventArgs e)

            HtmlDocument doc = HtmlPage.Document;

            HtmlElement element =  doc.GetElementById("ddlYear");
           
            string stryear = element.GetAttribute("value").ToString();

            element = doc.GetElementById("ddlMonth");

            string strmonth = element.GetAttribute("value").ToString();

            dateflag = stryear + strmonth + "00";

            PerformMethod();
            
 }

=============================================================================================

/// <summary>
/// 执行方法
/// </summary>
void PerformMethod()
{
            //收入类别
            this.getProductListTaskManager = new TaskManager();

            this.getProductListTaskManager.TaskProcs.Add(this.getProductListTask);

            this.getProductListTaskManager.Start();

 }

 

 

原文地址:https://www.cnblogs.com/qipilang/p/2423797.html