本帖最后由 rjsoft 于 2023-9-1 16:21 编辑
我们想要JSviewer在Startup的方法里获取页面传输的值,进行数据筛选,
我们按之前帖子提供的方法 (原贴地址 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=69784&extra=page%3D2)
使用UseCustomStore的方法进行报表名称和参数的获取和分割 - public class Startup1
- {
- public static string EmbeddedReportsPrefix = "JSdatasource";
- string ReportName = "";
- public object GetReport(string P)//获取报表名称和报表参数,进行一个对应的报表名称和参数的分割
- {
- string reportName = P.Split(';')[0];//报表名称;
- string parameter1 = P.Split(';')[1];//参数1,这样就可以根据参数值进行数据的筛选了;
- string parameter2 = P.Split(';')[2];//参数2;
- PageReport rep=new PageReport();
- string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
- rep.Load(new FileInfo(@"" + path + "Reports/" + reportName));
- return rep.Report;
- }
页面请求是这样子的: http://localhost:5050/?dataSources=EMR&toolbar=false&id=hlbl&dataSources=EMR&recId=3321&HospitalId=4®No=1035
请求正常报表也能正常显示。但是当参数长度太长(大概260字符以上)时,页面也就报错了,
(http://localhost:5050/?dataSources=EMR&toolbar=false&id=hlbl&dataSources=EMR&recId=4283,4279,4280,4290,4317,4361,4337,4372,4563,4751,4783,4855,4857,4905,5001,5087,5306,5344,5408,5418,5493,5548,5604,5641,5712,5756,5948,5961,5976,5995,6069,6117,6381,6403,6586,6628,6792,6851&HospitalId=4®No=74)
查看了请求过程,activereports内部请求了路由http://localhost:5050/api/reporting/reports/{参数}/info 也是这里报错了。
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.
请问大神,这种要传比较长参数的场景改怎么实现?
|