Hi Everyone,
I've been trying to create a new report using a drop down list for parameters, but instead of a drop down, I'm getting a select list. I followed the howto How To: Create a Custom Parameter Editor and added the JavaScript into my view (using MVC 5, Telerik Q3 2014 SP1 8.2.14.1204), as well as ensuring that the dropdownelement was using ".html" instead of ".htmll" (Error Found: How To Create a Custom Parameter Editor). Any help would be appreciated.
I've been trying to create a new report using a drop down list for parameters, but instead of a drop down, I'm getting a select list. I followed the howto How To: Create a Custom Parameter Editor and added the JavaScript into my view (using MVC 5, Telerik Q3 2014 SP1 8.2.14.1204), as well as ensuring that the dropdownelement was using ".html" instead of ".htmll" (Error Found: How To Create a Custom Parameter Editor). Any help would be appreciated.
@section header
{
@Styles.Render("~/Content/telerikCss")
<
style
type
=
"text/css"
>
#telerikReportViewer
{
overflow: hidden;
width: 100%;
height: 595px;
min-height: 595px;
}
</
style
>
}
<
div
class
=
"row"
>
<
div
class
=
"col-lg-12"
>
@{
var typeReportSource = new TypeReportSource { TypeName = Model.SelectedReportName };
if (typeReportSource.TypeName == "")
{
typeReportSource.TypeName = null;
}
}
@(Html.TelerikReporting().ReportViewer().Id("telerikReportViewer")
.ServiceUrl(@Url.Content("~/api/reports/"))
.TemplateUrl(@Url.Content("~/Content/ReportViewer/templates/telerikReportViewerTemplate-8.2.14.1204.html"))
.ReportSource(typeReportSource)
.ViewMode(ViewModes.PRINT_PREVIEW)
.ScaleMode(ScaleModes.SPECIFIC)
.Scale(1.0)
.PersistSession(false)
)
</
div
>
</
div
>
@section scripts
{
@Scripts.Render("~/bundles/reportsJS")
<
script
type
=
"text/javascript"
>
$(document).ready(function() {
$("#telerikReportViewer")
.telerik_ReportViewer({
parameterEditors: [
{
match: function (parameter) {
return Boolean(parameter.availableValues) && !parameter.multivalue;
},
createEditor: function (placeholder, options) {
var dropDownElement = $(placeholder).html('<
div
></
div
>'),
parameter,
valueChangedCallback = options.parameterChanged,
dropDownList;
function onChange() {
var val = dropDownList.value();
valueChangedCallback(parameter, val);
}
return {
beginEdit: function (param) {
parameter = param;
$(dropDownElement).kendoDropDownList({
dataTextField: "name",
dataValueField: "value",
dataSource: parameter.availableValues,
change: onChange
});
dropDownList = $(dropDownElement).data("kendoDropDownList");
}
};
}
}]
});
});
</
script
>
}