hi,
I am following the example and the documentation, but I can't solve thi issue
Uncaught TypeError: Cannot read property 'slice' of undefined
at init.success (kendo.all.js:7083)
at success (kendo.all.js:7010)
at Object.n.success (kendo.all.js:5934)
at fire (jquery.js:3182)
at Object.fireWith [as resolveWith] (jquery.js:3312)
at done (jquery.js:8754)
at XMLHttpRequest.<anonymous> (jquery.js:9120)
my view:
<div class="row">
<form asp-controller="Home" asp-action="SetLanguage" role="search" method="post">
<div class="form-group">
@*<input type="text" placeholder="Search for something..." />*@
@(Html.Kendo().MultiColumnComboBox()
.Name("products")
.DataTextField("Name")
.DataValueField("Id")
.Columns(columns =>
{
//columns.Add().Field("Name").Template("<a href= '" + "Instrument/Quotes/#: Id #" + "'>Q</a>").Title("Name");
//columns.Add().Field("Id").Title("ID");
columns.Add().Field("Id").Template("<a href= '" + "/Analisys/AnalisysShort/#: Id #" + "'>#: Name#</a>").Title("ID");
})
.Placeholder("Search...")
.DataSource(source =>
{
source.Custom()
.ServerFiltering(true)
.ServerPaging(true)
.PageSize(80)
.Type("aspnetmvc-ajax")
.Transport(transport =>
{
transport.Read("SearchInstruments_Read", "Home");
})
.Schema(schema =>
{
schema.Data("Data")
.Total("Total");
});
})
.Virtual(v => v.ItemHeight(26).ValueMapper("valueMapper")))
<button type="submit" class="btn btn-success">
<i class="glyphicon glyphicon-search"></i>
</button>
</div>
</form>
</div>
<script>
function valueMapper(options) {
$.ajax({
url: "@Url.Action("SearchInstruments_ValueMapper", "Home")",
data: convertValues(options.value),
success: function (data) {
options.success(data);
}
});
}
function convertValues(value) {
var data = {};
value = $.isArray(value) ? value : [value];
for (var idx = 0; idx < value.length; idx++) {
data["values[" + idx + "]"] = value[idx];
}
return data;
}
</script>
my controller
public async Task<ActionResult> SearchInstruments_Read([DataSourceRequest] DataSourceRequest request)
{
var model = await _repo.GetAllAsync<Instrument>();
var vmodel = Mapper.Map<IEnumerable<InstrumentViewModel>>(model);
return Json(vmodel);
}
public async Task<IActionResult> SearchInstruments_ValueMapper(int[] values)
{
var indices = new List<int>();
if (values != null && values.Any())
{
var index = 0;
foreach (var model in await _repo.GetAllAsync<Instrument>())
{
if (values.Contains(model.Id))
{
indices.Add(index);
}
index += 1;
}
}
return Json(indices);
}
thank you for help