Telerik Forums
UI for ASP.NET Core Forum
1 answer
476 views

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?

 

Mihaela
Telerik team
 answered on 27 Jul 2021
1 answer
334 views

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');
        }
    })
I have been trying to pass a function to the htmlhelper and can not figure it out.  I have tried passing with events, and puting a function in the content.  I have no joy.
@(Html.Kendo().Tooltip()
    .For("#Name")
    .AutoHide(true)
    .Position(TooltipPosition.Top)
    .Content("TEST TEST")
    .Width(120)
    //.Events(events => events.ContentLoad("showTooltip"))
    )
Also can I use a class in the For, like .For(".form-tooltip")?
Ivan Danchev
Telerik team
 answered on 26 Jul 2021
12 answers
6.6K+ views

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


Russell Haley
Top achievements
Rank 1
Iron
Iron
Iron
 answered on 22 Jul 2021
1 answer
140 views

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

 

 

Aleksandar
Telerik team
 answered on 20 Jul 2021
0 answers
155 views
hello
Rahul
Top achievements
Rank 1
 updated question on 20 Jul 2021
1 answer
228 views

<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.&nbsp; 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).&nbsp; I set the first editable field to a ridiculously large number and it made no difference.</p><p>What am I missing?</p><p>&nbsp;</p><p>&nbsp;</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()
)

Aleksandar
Telerik team
 answered on 20 Jul 2021
2 answers
641 views

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

Robert
Top achievements
Rank 1
Iron
 answered on 19 Jul 2021
1 answer
197 views

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?

Petar
Telerik team
 answered on 16 Jul 2021
1 answer
389 views

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

Tsvetomir
Telerik team
 answered on 15 Jul 2021
1 answer
1.8K+ views

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?

Tsvetomir
Telerik team
 answered on 14 Jul 2021
Narrow your results
Selected tags
Tags
+? more
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?