Telerik 如何将参数传递给web api服务上的reportSource
报告:报告库 reperviewer:Html5 ReportService:WebAPI 在WebAPI服务中,dataSource带来32000行数据。但报告中只使用了10行数据。这样,报告速度非常慢。如何将参数传递给web api服务 ReportViewer: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">
<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"];
}