Telerik 如何将参数传递给web api服务上的reportSource

Telerik 如何将参数传递给web api服务上的reportSource,telerik,reporting,reportviewer,asp.net-web-api,telerik-reporting,Telerik,Reporting,Reportviewer,Asp.net Web Api,Telerik Reporting,报告:报告库 reperviewer:Html5 ReportService:WebAPI 在WebAPI服务中,dataSource带来32000行数据。但报告中只使用了10行数据。这样,报告速度非常慢。如何将参数传递给web api服务 ReportViewer: <div id="reportViewer1" class="k-widget"> loading... </div> <script type="text/javascript">

报告:报告库

reperviewer:Html5

ReportService:WebAPI

在WebAPI服务中,dataSource带来32000行数据。但报告中只使用了10行数据。这样,报告速度非常慢。如何将参数传递给web api服务

ReportViewer:

<div id="reportViewer1" class="k-widget">
    loading...
</div>
<script type="text/javascript">
    $("#reportViewer1")
        .telerik_ReportViewer({
            serviceUrl: "http://localhost:2404/api/StokPaketList/",
            templateUrl: '../ReportViewer/templates/telerikReportViewerTemplate.html',
            reportSource: {
                report: "BeeSp.ReportLibrary.Stok.RprStokPaket, BeeSp.ReportLibrary",
                parameters: {
                    CultureID: "en"
                }
            }
        });
</script>

我假设有更好的方法来实现这一点,但我要做的是通过创建序列化JSON对象将所有参数放入
reportSource.report
参数中。然后在
CustomerReportResolver()
方法中,我使用Newtonsoft.Json库反序列化对象。因此,类似于以下内容:

var json = {};
json.reportType = "BeeSp.ReportLibrary.Stok.RprStokPaket, BeeSp.ReportLibrary";
json.rows = 10;

$("#reportViewer1")
    .telerik_ReportViewer({
        serviceUrl: "http://localhost:2404/api/StokPaketList/",
        templateUrl: '../ReportViewer/templates/telerikReportViewerTemplate.html',
        reportSource: {
            report: JSON.stringify(json),
            parameters: {
                CultureID: "en"
            }
        }
    });
然后在服务器端:

public ReportSource CustomReportResolver(string report)
{
    JToken token = JObject.Parse(report);

    int rows = (int)token["rows"];
    string reportType = (string)token["reportType"];
}

然后在数据源对象上,您可以像添加任何其他参数一样添加rows参数。

非常感谢为我做的这项工作,我花了一整天的时间来解决这个问题,但最终找到了您的答案如果可以进行双重投票,我将把所有投票都给您谢谢您发布这个问题非常有帮助
public ReportSource CustomReportResolver(string report)
{
    JToken token = JObject.Parse(report);

    int rows = (int)token["rows"];
    string reportType = (string)token["reportType"];
}