lovelyboy01 发表于 2016-6-22 16:23:16

关于MVC下AR传参问题

本帖最后由 Lenka.Guo 于 2016-6-23 09:42 编辑

您好,我在MVC下应用AR,参考以下示例:http://gcdn.gcpowertools.com.cn/showtopic-19954-1-1.html
目前遇到的问题是,前端如何传递报表参数到WebService中进行数据集合的过滤,还请指教,谢谢:
相应代码片段如下:
$(function () {
            var viewer = GrapeCity.ActiveReports.Viewer(
            {
                element: '#viewerContainer',
                report: {
                  id: "CustomDataSource.rdlx",
                  parameters: [
                  {
                        name: 'p1',
                        value:'car'
                  }]
                  //id: "RdlReport2.rdlx"
                },
                reportService: {
                  url: 'ActiveReportsService.asmx'
                  //url: 'ActiveReports.ReportService.asmx'
                },
                uiType: 'desktop'
            });
      });
在前端js中我写了一个p1的参数,设置值加入为car
在WebService代码中该怎么获取到这个值?
void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
      {
            //args.Data = ((List<CustomObject>)GetObjectDataSource()).Where(m => m.Name == args.Report.Parameters.CurrentValue.ToString()).ToList<CustomObject>();
            args.Data = ((List<CustomObject>)GetObjectDataSource()).Where(m => m.Name == "car").ToList<CustomObject>();
      }
目前那个car是写死的,需要根据前端传递过来的参数,灵活获取数据,该怎么实现呢,还请帮忙,再次感谢!

Lenka.Guo 发表于 2016-6-23 09:40:57

您好,通过args变量获取到参数的当前值,然后传递给数据源作为查询就可以了
   private void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
      {
            temp = args.Report.Parameters.CurrentValue.ToString();
            args.Data = ((List<CustomObject>)GetObjectDataSource()).Where(m => m.Name == temp).ToList<CustomObject>();
      }


lovelyboy01 发表于 2016-6-25 17:19:25

Lenka.Guo 发表于 2016-6-23 09:40
您好,通过args变量获取到参数的当前值,然后传递给数据源作为查询就可以了

好的,非常感谢,解决了我的问题,太给力了!

Lenka.Guo 发表于 2016-6-27 09:17:23

lovelyboy01 发表于 2016-6-25 17:19
好的,非常感谢,解决了我的问题,太给力了!

:hjyzw:
页: [1]
查看完整版本: 关于MVC下AR传参问题