I have a partial view, that generates a chart, which I need to embed in a Grids client detail template, so a chart will be generated for each record in the grid.
It seems like it should work, but I can't pass the necessary id across to the controller of the partial view.
The client detail template is set up as:-
<script id=
"subdetailsTemplate"
type=
"text/kendo-tmpl"
>
@(Html.Kendo().TabStrip().Name(
"Tabstrip_#=ReportKey#"
)
.Items(i =>
{
i.Add().Text(
"Activity Summaries"
).Selected(
true
).Content(@<text>
@Html.Action(
"ReportCharts"
,
"ServerChart"
,
new { reportKey =
"#=ReportKey#"
})
</text>);
i.Add().Text(
"Execution History"
).Selected(
false
).Content(@<text>
@(Html.Kendo().Grid<SSRSStats.Models.View_ReportExecutions>()
.Name(
"ELGrid_#=ReportKey#"
)
.Columns(columns =>
{
columns.Bound(o => o.LogEntryID).Title(
"ID"
);
columns.Bound(o => o.ExecutionLogID).Title(
"ID"
);
columns.Bound(o => o.UserName).Title(
"User"
);
columns.Bound(o => o.RequestType).Title(
"Request"
);
columns.Bound(o => o.TimeStart).Title(
"Time Start"
).Format(
"{0:g}"
);
columns.Bound(o => o.TimeEnd).Title(
"Time End"
).Format(
"{0:g}"
);
columns.Bound(o => o.TimeProcessing).Title(
"Processing"
).Format(
"{0:N0}"
);
columns.Bound(o => o.TimeDataRetrieval).Title(
"Data Retrieval"
).Format(
"{0:N0}"
);
columns.Bound(o => o.TimeRendering).Title(
"Rendering"
).Format(
"{0:N0}"
);
})
.ClientDetailTemplateId(
"subsubdetailsTemplate"
)
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Read(read => read.Action(
"RD_Executions"
,
"ReportUsage"
,
new
{ ReportKey =
"#= ReportKey #"
}))
.Sort(s=>s.Add(
"LogEntryID"
).Descending())
)
.Pageable(p => p.Refresh(
true
))
.ToClientTemplate()
)
</text>);
})
.ToClientTemplate()
)
</script>
--
This works fine without the @Html.Action, line, with the sub grid being populated correctly.
However, when this code is run, an error is thrown saying
The parameters dictionary contains a null entry for parameter 'reportKey' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult ReportCharts(Int32)'
The controller is:-
public
ActionResult ReportCharts(
int
reportKey)
{
ViewBag.rk = reportKey;
ViewBag.ChartName =
"Chart_RK_"
+ reportKey.ToString();
ViewBag.ChartName2 =
"Chart_RK2_"
+ reportKey.ToString();
ViewBag.ChartTitle =
"Report Activity for the Last 10 Days"
;
ViewBag.ChartTitle2 =
"Report Activity for the Last 12 Months"
;
//var query = _repository.GetLast10DaysUsage(ReportKey);
return
PartialView();
}
--
If the parameter is made nullable, the page runs, but the charts do not display (although ajax calls are made to the server with the correct ReportKey value, as well as the default value).
What do I need to do in order to make this work?
I'm using version 2020.2.617
Thanks