Hi,
I have a Filter Control combined with a Grid Control.
Both are linked to the same Kendo Datasource.
Everything works like a charm
Now I want to set up a enum list for a field in the Filter Control, but I was unable to figure out how. (only free text works in the Filter Control)
The data source is gigantic, the filters in the filter control must be set before calling the data and as there are some fields like "business type" I want to show all possible values, without having each user memorize each possible value for each enum field.
What I want works with the datagrid filter once the datagrid is populated from the datasource, but it's impossible to load all the data and therefore I need the filter control.
(If there is another way, I am open to it)
Is this possible?
Is there some documentation I missed?

I can not figure out how I can pass a function for content in an Asp.net core to tooltip. In the JQuery examples you can do something like this:
$("#Name").kendoTooltip({
content: function (e) {
return $(e.target).data('tooltip');
}
})@(Html.Kendo().Tooltip()
.For("#Name")
.AutoHide(true)
.Position(TooltipPosition.Top)
.Content("TEST TEST")
.Width(120)
//.Events(events => events.ContentLoad("showTooltip"))
)
Hi all,
Is anyone else seeing the error below? I get it at runtime when CreateHostBuilder(args).Build().Run() is called.
System.AggregateException
HResult=0x80131500
Message=Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Kendo.Mvc.Rendering.IKendoHtmlGenerator Lifetime: Transient ImplementationType: Kendo.Mvc.Rendering.KendoHtmlGenerator': Could not load type 'Microsoft.AspNetCore.Mvc.Internal.ClientValidatorCache' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.)
Source=Microsoft.Extensions.DependencyInjection
StackTrace:
at Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable`1 serviceDescriptors, ServiceProviderOptions options)
at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options)
at Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder)
at Microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter`1.CreateServiceProvider(Object containerBuilder)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at GariboldiApp.Program.Main(String[] args) in D:\Project Consultants\JV\git_work\Garibaldi\Gariboldi\GariboldiApp\Program.cs:line 16
Inner Exception 1:
InvalidOperationException: Error while validating the service descriptor 'ServiceType: Kendo.Mvc.Rendering.IKendoHtmlGenerator Lifetime: Transient ImplementationType: Kendo.Mvc.Rendering.KendoHtmlGenerator': Could not load type 'Microsoft.AspNetCore.Mvc.Internal.ClientValidatorCache' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
Inner Exception 2:
TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.Internal.ClientValidatorCache' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
Many thanks!
Jerry Tennison
I have an issue while enabling headerview in the tree list as per picture 1. If I disable it works fine, but if I need to enable it to make the title clear I get an error as per picture 2

<p>For a .netcore 3.1 web application I have a grid using grideditmode.inline and the columns are loaded using columns.LoadSettings(Model.columns)</p><p>The width of the editable columns is set in the Model.columns but no matter how I change the size, it always displays the same width. The width is too small in either state (editable or view) that you cannot see a full number if it is longer than 4 characters.</p><p>The columns that are set to not editable seem to follow the column width setting as passed in the columns.LoadSettings(Model.columns). I set the first editable field to a ridiculously large number and it made no difference.</p><p>What am I missing?</p><p> </p><p> </p>
This is a snippet of the columns - only showing a section for brevity since it is over 40 columns total (only half are visible.)
IList<GridColumnSettings> columns = new List<GridColumnSettings>
{
new GridColumnSettings
{
Member = "rowId",
//Member = "rowId",
Title = "Row Id",
Visible = false
//Locked = true
},
new GridColumnSettings
{
Member = "fgid",
Visible = false
},
new GridColumnSettings
{
Member = "PartNumber",
//Member = "PartNumber",
Title = "Part",
Width = "150px",
Filterable = true,
//Visible = true,
Locked = true
},
new GridColumnSettings
{
Member = "currentMon1",
Title = titles[0],
Visible = true,
Width = "500px",
Filterable = false,
Locked = false
},
new GridColumnSettings
{
Member = "currentMon1Id",
Title = "Mon1Id",
Visible = false
},
this is the grid:
@(Html.Kendo().Grid<PartRowView>().Name("grid1")
.Sortable()
.Editable(x => x.Mode(GridEditMode.InLine))
.Scrollable()
.Filterable()
.Resizable(r => r.Columns(true))
.ToolBar(tools => tools.Excel().IconClass("k-icon k-i-download"))
.Excel(excel => excel
.FileName(Model.filename)
.Filterable(true)
.AllPages(true)
.ProxyURL("/forecast/TestPage?handler=Save")
)
.Columns(columns => columns.LoadSettings(Model.columns)
)
.DataSource(ds => ds.Ajax()
.Events(events => events.Error("errors_handler"))
.ServerOperation(false)
.Read(r => r.Url(Url.Action() +"?handler=Read").Data("forgeryToken"))
.Update(u => u.Url(Url.Action() +"?handler=Update").Data("forgeryToken"))
.Model(model =>
{
model.Id(p => p.rowId);
model.Field(p => p.PartNumber).Editable(false);
model.Field(p => p.currentMon1Id).Editable(false);
model.Field(p => p.currentMon2Id).Editable(false);
model.Field(p => p.currentMon3Id).Editable(false);
model.Field(p => p.currentMon4Id).Editable(false);
model.Field(p => p.currentMon5Id).Editable(false);
model.Field(p => p.currentMon6Id).Editable(false);
model.Field(p => p.currentMon7Id).Editable(false);
model.Field(p => p.currentMon8Id).Editable(false);
model.Field(p => p.currentMon9Id).Editable(false);
model.Field(p => p.currentMon10Id).Editable(false);
model.Field(p => p.currentMon11Id).Editable(false);
model.Field(p => p.currentMon12Id).Editable(false);
model.Field(p => p.currentMon13Id).Editable(false);
model.Field(p => p.currentMon14Id).Editable(false);
model.Field(p => p.currentMon15Id).Editable(false);
model.Field(p => p.currentMon16Id).Editable(false);
model.Field(p => p.currentMon17Id).Editable(false);
model.Field(p => p.currentMon18Id).Editable(false);
})
.PageSize(100)
)
.Pageable()
)
In the following example, the width of the filter boxes are much bigger than the data for that column. For example, the max number of digits for Order ID is 5. Therefore, the filter box only needs to be wide enough to hold 5 digits.
https://demos.telerik.com/aspnet-core/grid/filter-row
How do you reduce the width of the filter boxes?
Thanks,
Robert
I have a page using ListView paging which is well.
Problem is that the pager shows a dropdown instead of numeric links, unless the width of div containing listview is increased (to 50% in my case)
This is how it looks when div is wide (50% width)
This is how I need it to be. with numeric links
But this is how it looks now (with width at 30%)
Unfortunately I need the width at 30% due to the content on the right side of the listview.
My question is how do I force the listview to show pager as numeric links only?
Hi,
I have the requirement where I need to get the confirmation from the user when they click on the delete button in the listview before proceeding to destroy action. I am trying to subscribe to the click event on the delete button to cancel the destroy action. But I am unable to do so as Kendo has already bound the delete button click to destroy action.
Please suggest/guide on how I can get a confirm box displayed before proceeding to destroy action.
Thanks,
Ashwini
I have a grid worth of data coming from 2 different data sources that I smash together on the server side and send to the grid. Data from one of my sources is fine (ish... it is pretty slow too), data from the other source is brutally slow. So I want to send all of the data from source one and the first page worth of data from source 2 to the grid on page load, and then use JQuery/ajax to do a deferred load on the remaining data in the background.
I do not want to do an AJAX call per page because data source 1 isn't fast enough for that.
Since the second data source is so slow, I am chunking the unpopulated data into page sized chunks (blocks of 10) and letting the async goodness do its thing. I can do the ajax and get the supplemental data without a problem. I just can't seem to get the grid to respect the updated data. I can't replace the whole datasource's data set at once because we are doing this all async and we will have data pouring in all willy nilly and we don't want to have potential over writes. So we have to update it per row.
const fieldsToUpdate = ["field1", "field2", "field3", "field4"];
$.ajax({
.... blah blah blah ....
success: function(responseData) {
const accounts = responseData.Data.AccountList;
for (let idx = 0; idx < accounts.length; idx++) {
const curAccount = accounts[idx];
const dataItem = theGrid.dataSource.get(curAccount.AccountNumber);
if (dataItem) {
console.log(`Deferred data load for: ${curAccount.AccountNumber}`);
for (let propIdx = 0; propIdx < fieldsToUpdate.length; propIdx++) {
const key = fieldsToUpdate[propIdx];
// because the set method will ignore anything that isn't marked as 'editable' and I don't care about that
let hasEdit = false;
if (dataItem.fields[key].hasOwnProperty("editable")) {
dataItem.fields[key].editable = hasEdit = true;
}
// actually set the value
dataItem.set(key, curAccount[key]);
// set it back to whatever it was
if (hasEdit) {
dataItem.fields[key].editable = false;
}
}
// we don't care
dataItem.dirtyFields = {};
dataItem.dirty = false;
}
}
}
});
So the above kinda sorta works. It will display the right data until you attempt to move to a different page. Then it looses it mind and the data reverts back to what it was originally (unset) and the paging breaks and the grid just stops working all together. There are no errors visible in the console.
What is the proper way to update individual rows of data in a grid that may or may not be visible on the current page of the grid?