@using BoldReports.Web;
<div style="height:800px">
<label>
CustomerID:
<input type="text" name="CustomerID" id="customerid">
</label>
<input type="button" value="Submit" onclick=onClick()>
<bold-report-viewer id="viewer"
report-path="Region.rdlc"
report-service-url="/api/ReportViewer"
processing-mode="Local"
ajax-before-load="ajaxBeforeLoad">
</bold-report-viewer>
</div>
<script type="text/javascript">
var parameters = [{
name: 'CustomerID',
labels: ['29661'],
values: [29661],
nullable: false
}];
function ajaxBeforeLoad(event) {
event.data = parameters;
};
function onClick(element) {
parameters = [{
name: 'CustomerID',
labels: [document.getElementById("customerid").value],
values: [document.getElementById("customerid").value],
nullable: false
}];
var reportviewer = $("#viewer").data('boldReportViewer');
reportviewer.setModel({ "parameters": parameters });
};
</script>
|
public void OnInitReportOptions(ReportViewerOptions reportOption)
{
List<BoldReports.Web.ReportParameter> userParameters = new List<BoldReports.Web.ReportParameter>();
userParameters.Add(new BoldReports.Web.ReportParameter()
{
Name = "CustomerID",
Values = new List<string>() { "29661" }
});
string basePath = _hostingEnvironment.WebRootPath;
reportOption.ReportModel.ProcessingMode = ProcessingMode.Local;
FileStream inputStream = new FileStream(basePath + @"\Resources\Region.rdlc", FileMode.Open, FileAccess.Read);
reportOption.ReportModel.Stream = inputStream;
var parameters = new List<ReportParameter>();
if (DefaultParam != null)
{
parameters = JsonConvert.DeserializeObject<List<ReportParameter>>(DefaultParam);
}
if (parameters != null && parameters.Count > 0)
{
reportOption.ReportModel.DataSources.Clear();
reportOption.ReportModel.DataSources.Add(new ReportDataSource { Name = "StoreSales", Value = StoreSales.GetData(Convert.ToInt32(parameters[0].Values[0])) });
}
} |
$.ajaxSetup({
type: "POST",
xhrFields: {
withCredentials: true
},
crossDomain: true
});
|