Coder Social home page Coder Social logo

stefh / kendogridbinderex Goto Github PK

View Code? Open in Web Editor NEW
54.0 25.0 24.0 27 MB

This is a ModelBinder designed to consume an http request and build a json serializable object for the Kendo UI Grid datasource. AutoMapper is used to support mapping from ViewModel <> Entity.

License: MIT License

C# 100.00%
kendo-ui grid binder dynamic automapper

kendogridbinderex's Introduction

Information on NuGet

In February 2022 Progress Software Corporation ("PSC") has obtained from NuGet Prefix reservations for a number of its trademarks/product names, including Kendo.

Since my NuGet packages use the "Kendo" prefix, PSC is hereby requesting that I either rename the package in a way that makes it clear to consumers that this is not a Progress Software Corporation product or delist the package from the nuget.org site altogether.

So for now (February 2022) I decided to unlist the NuGet.

When I have time, I'll create new NuGet packages. Probably like:

  • GridBinder.for.Kendo (rather than KendoGridBinder)
  • GridBinderEx.for.Kendo (rather than KendoGridBinderEx)
  • GridBinder.AspNetCore.for.Kendo (rather than KendoGridBinder.AspNetCore)

Kind regards, Stef Heyenrath

KendoGridBinder

Build status

Versions

NuGet Frameworks NuGet
KendoGridBinder .NET 4.5 NuGet Badge
KendoGridBinder.AspNetCore .NET 4.6.1
NETStandard 1.6
NETStandard 2.0
NuGet Badge

Demo

A live demo can be found here.

Action Method

[HttpPost]
public JsonResult Grid(KendoGridMvcRequest request)
{
    var employees = new List<Employee>
    {
        new Employee { EmployeeId = 1, FirstName = "Bill", LastName = "Jones", Email = "[email protected]" },
        new Employee { EmployeeId = 2, FirstName = "Rob", LastName = "Johnson", Email = "[email protected]" },
        new Employee { EmployeeId = 3, FirstName = "Jane", LastName = "Smith", Email = "[email protected]" }
    };

    var grid = new KendoGridEx<Employee, EmployeeVM>(request, employees.AsQueryable());
    return Json(grid);
}

HTML

<div id="grid"></div>

Script

<script>
    var url = '@Url.Action("Grid")';

    var dataSource = {
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true,
        pageSize: 20,
        transport: {
            read: {
                type: 'post',
                dataType: 'json',
                url: url
            }
        },
        schema: {
            data: 'Data',
            total: 'Total',
            model: {
                id: 'Id',
                fields: {
                    FirstName: { type: 'string' },
                    LastName: { type: 'string' },
                    Email: { type: 'string' }
                }
            }
        }
    };

    $('#grid').kendoGrid({
        dataSource: dataSource,
        height: 400,
        columns: [
            { field: 'FirstName', title: 'First Name' },
            { field: 'LastName', title: 'Last Name' },
            { field: 'Email' }
        ],        
        filterable: true,
        sortable: true,
        pageable: true
    });
</script>

kendogridbinderex's People

Contributors

adamdowns avatar dependabot[bot] avatar gordon-matt avatar stefh avatar watashishun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kendogridbinderex's Issues

Error in example

Hey,
There is an error in the example on README.md

I needed to have:
schema: {
data: "Data",
total: "Total"
}
instead of the example (which is lower case)

Filter breaks if the result set contains a null value

function loadSearch() {

var search = document.getElementById('search').value;
var grid = $("#grid").data("kendoGrid");
listDataSource._filter = [
    {
        "logic": "or",
        "filters": [
            { field: "LastName", operator: "contains", value: search },
            { field: "FirstName", operator: "contains", value: search }
        ]
    }];
grid.dataSource.page(1);
grid.dataSource.read();

}

If the result set contains a null value "FirstName or LastName"
var grid = new KendoGridEx(request, list) crashes
Null Reference Exception

Is it free grid control?

HI,

please tell me is it free grid control?. can we use it in production environment if we download come from here. thanks

Unsupported Cast operation with RavenDB

When trying to use the KendoGridEx with RavenDB (v3.x), I stumble upon a problem with RavenDB not supporting the .Cast() operation.

In short, I've traced down the problem to a crash on the .Cast method in the GetAutoMapperConversion() function.

This results in the following error:

Message: "Could not understand expression: .OrderBy(Param_0 => Param_0.Id).Take(50).Cast()"
InnerException: "Method not supported: Cast"
Source: Raven.Client.Lightweight

As said, the cause is quite simple: RavenDB doesn't support it deliberately. However, the solution seems to be simple as well. Considering I'm not using AutoMapper to map to a viewmodel, changing the following line works beautifully:

// This doesn't work, as it calls the .Cast() earlier when _conversion is null
//Data = _conversion(_query).ToList();

// This does work if there's no need for automapper
Data = (IEnumerable<TViewModel>)_query.ToList();

This renders the entire GetAutoMapperConversion function obsolete, it seems.

I would love to prepare a pull request on this one, but am a bit doubting on what would be an ideal - or better - way to prevent this .Cast() problem related to RavenDB. Any thoughts, @StefH?

Thanks.

Getting Uncaught TypeError: Cannot read property 'length' of undefined

Good morning,

I'm utilizing the latest copy of your framework and I'm getting this error "Uncaught TypeError: Cannot read property 'length' of undefined" when I try to group. The javascript I'm using is below. I'm using the Angular-Kendo extensions. It seems as if when the request gets posted back to the server I'm not getting any of the grouping data inside the KendoGridRequest object. Is there some sort of model binding I need to do inside my project in order to get this to function? I have also posted a copy of my controller below my javascript.

function transactionSummaryGridOptions() {
            var gridOptions = {
                batch: true, // If set to true the data source will batch CRUD operation requests
                dataSource: {
                    transport: {
                        read: {
                            url: "../api/BiztalkData/BatchSummaryCompletedJobs",
                            type: "POST",
                            contentType: "application/json"
                        },
                        parameterMap: function (options, operation) {
                            if (operation === "read") {
                                // convert the parameters to a json object
                                return kendo.stringify(options);
                            }

                            // ALWAYS return options
                            return options;
                        }
                    },              
                    pageSize: 5,
                    serverPaging: true,
                    serverFiltering: true,
                    serverSorting: true,
                    serverGrouping: true,
                    schema: {
                        model: {
                            id: "recordID",
                            fields: {
                                recordID: {type: "long" },
                                trading_Partner: { type: "string" },
                                transaction_Type: { type: "string" },
                                count_Successful: { type: "int" },
                                count_Unsuccessful: { type: "int" },
                                detail_Count: { type: "int" }
                            }
                        },
                        data: function (result) {
                            return result.data || result;
                        },
                        total: function(result) {
                            return result.total || 0;
                        },
                        errors: function(result) {
                            return result.error || null;
                        },
                        error: function (e) {
                            common.logger.logError(e.errorThrown, e.status, e.sender, true);
                        },
                    },
                }, 
                filterable: true,
                sortable: true,
                pageable: {
                    refresh: true,
                    pageSizes: true,
                    buttonCount: 5
                },
                groupable: true,
                resizable: true,
                reorderable: true,
                columnMenu: true,
                columns: [
                {
                    field: "recordID",
                    title: "RecordId"
                },
                {
                    field: "trading_Partner",
                    title: "Trading Partner"
                },
                {
                    field: "transaction_Type",
                    title: "Transaction Type"
                },
                {
                    field: "count_Successful",
                    title: "Successful Records"
                },
                {
                    field: "count_Unsuccessful",
                    title: "Unsuccessful Records"
                },
                {
                    field: "detail_Count",
                    title: "Total Records"
                }]
            };
 public class BiztalkDataController : ApiController
    {
        readonly IBAMRepository _repository;

        public BiztalkDataController(IBAMRepository repository)
        {
            _repository = repository;
        }

        [System.Web.Http.HttpPost]
        public KendoGridEx<BatchSummaryCompleted, BatchSummaryCompleted> BatchSummaryCompletedJobs(KendoGridRequest request)
        {
            var data = _repository.BatchSummaryCompletedJobs.ToList().Select(s =>
                new BatchSummaryCompleted()
                {
                    RecordID = s.RecordID,
                    ActivityID = s.ActivityID,
                    LastModified = s.LastModified,
                    Ack_Sent = s.Ack_Sent,
                    Batch_Id = s.Batch_Id,
                    Detail_Count = s.Detail_Count,
                    Direction = s.Direction,
                    End = s.End,
                    Receive_Date = s.Receive_Date,
                    Start = s.Start,
                    Status_Successful = s.Status_Successful,
                    Status_Unsuccessful = s.Status_Unsuccessful,
                    Trading_Partner = s.Trading_Partner,
                    Transaction_Type = s.Transaction_Type,
                    InboundFile = s.InboundFile,
                    AgreementName = s.AgreementName,
                    Count_Successful = s.Count_Successful,
                    Count_Unsuccessful = s.Count_Unsuccessful
                }).AsQueryable();

            return data.ToKendoGridEx<BatchSummaryCompleted, BatchSummaryCompleted>(request, null);            
        }
}

Question: Server paging

Hi. Since there is no complete documentation provided for this project, I just want to know if server paging is supported and how to enable it. I need to optimize data loading which is my main concern.

If there no such thing, would you recommend on how do we optimize data loading, for example we query just the 20 data out of 4000 that is needed to be shown on the page (which is sized at 20) but still return the total so the total pages is known to the grid.

I’m using kendogridbinder for c# mvc.

Thanks for your help.

Unable to obtain the filter values through FilterObjectWrapper

Hi StefH,

I was trying to contact you personally but I have no other options but to write in here. I would like to seek your help in this matter.

My grid is working. If I applied the filters, the browser seems to process something at the back but in the end, the same result is produced. I have been trying to access the filter and sort object values using FilterObjectWrapper using the below code to access the filter's value, but none of the request.FilterObjectWrapper had value; it is always giving null value.

public IEnumerable slaToUse(SlaBaseViewModel slaQueried, KendoGridMvcRequest request)
        {
            SlaBaseViewModel query = slaQueried;
            if (request.FilterObjectWrapper != null)
            {
                IEnumerable filters = (IEnumerable)request.FilterObjectWrapper.FilterObjects.GetEnumerator();
                IEnumerable sorts = (IEnumerable)request.SortObjects.GetEnumerator();
                
                foreach (FilterObject filter in filters)
                {
                    if (filter.Field1 == "SLAName")
                    {
                        query = (SlaBaseViewModel)query.ListOfSlas.Where(x => x.SNCBusinessServices.ServiceName == filter.Value1).Take(10);
                    }
                }
            }
            return query.ListOfSlas;
        }

Appreciate your help on this one.

problem in ApplyAggregates when filtering produces zero entities

Hi. I noticed a problem when applying a filter that didn't match any rows. It was a "sequence contains no elements" exception in ApplyAggregates(), in the line before the return:

var aggregates = (aggregatesQuery.First() as DynamicClass).GetAggregatesAsDictionary();

...because the evaluation of aggregatesQuery has zero elements. I would suggest adding a line before that one like:

if (aggregatesQuery.Count() == 0) return null;

My test has two sum aggregates. I suspect it can be reproduced using the Test_KendoGridModelBinder_Aggregates_WithIncludes() unit test and applying a filter like CompanyName eq "Q".

Question about inheriting from KendoGridApiRequest

Ok sorry to be a pain, but I truly love your framework and I'm SO CLOSE to getting everything I need. So I'm trying to execute a post like this

public KendoGridEx<BatchSummaryCompleted, BatchSummaryCompleted> BatchSummaryCompletedJobs(KendoGridApiRequest request)

However I have some additional parameters I need to pass along to the request in addition to the stuff for the grid. I thought I could just simply create a class that inherits from KendoGridApiRequest and use that but I end up getting a 404 error and not being able to connect to my api.

I think it has something to do with the model binding not working. Is there something I'm doing wrong? It would be great to be able to add parameters to the post variable so I can use this anywhere.

Thanks again for all your help.
Matt

example is wrong?

  1. Action Method
    [HttpPost]
    public JsonResult Grid(KendoGridMvcRequest request)
    {
    ...
    }
  2. Script...........
    schema: {
    data: 'Data',
    total: 'Total',

Group by navigation property

Hello,

I just discovered your solution and this is just the perfect thing for what I was trying to do with Kendo UI Grid in the new ASP.NET 5 MVC 6 framework.

I had to make a few changes in order for this to work with the new framework but in the end this is working quite good!

While trying many scenarios with this component, the only one for which I got an error is when I try to group a grid by a navigation property.

For instance, I have a grid listing addresses (a type of entity) that I want to group by country (another type of entity available as a navigation property in the address entity).
I get an error in the KendoGridEx expression composing when I try to specify the groupby clause like this for instance:

group: { field: "Country.Name", dir: "asc" }

I think this is just a scenario that was not intended to work in your component but I think this would be quite useful.

For now I ended up grouping by the navigation property's foreign key that I materialized in the Adress entity and then used an hidden column for this property in the grid with a groupheadertemplate to show the right property in the group header.

I defined this javascript function for use in the template:

function getCountryName(value) {
    var grid = $("#grid").data("kendoGrid");
    var view = grid.dataSource.view();
    for (var i = 0; i < view.length; i++) {
        if (view[i].value === value) {
            return view[i].items[0].Country.Name;
        }
    }
}

I specified the grouping like this:

group: { field: "Country_Id", dir: "asc" }

Here is the template I used:

{ field: "Country_Id", hidden: true, groupHeaderTemplate: "#=getCountryName(value)#" },
{ field: 'Country.Name', title: 'Country' },

If we could directly specify to group by a navigation property this would be a lot easier.

I only need to do this because I do not use a flattened ViewModel and the automapping options of your component. I work directly with the entities and so I got to work with the navigation properties.

Dapper

Is this only compatible with entity framework or can we use Dapper?

Bugs for ASP.NET Core version

Nice work on this.. I've just discovered it today and wish to use it with ASP.NET Core. I've got it working, but not without a bit of hacking it due to some issues:

Firstly, the KendoGridEx<TEntity>(request, query) doesn't work. When looking into the code, I discovered it's because it passes null for the conversion parameter in the base class' constructor and that causes a Null Reference Exception at line 86, which is:

Data = _conversion(_query).ToList();

The other thing is the KendoGridMvcRequest was always coming through as null. The model binding wasn't working and it seems this is because you are not using the KendoGridMvcModelBinder.. instead your KendoGridMvcRequest is simply as follows:

https://github.com/StefH/KendoGridBinderEx/blob/master/KendoGridBinderEx/ModelBinder/Mvc.AspNetCore/KendoGridMvcRequest.cs

[ModelBinder]
public class KendoGridMvcRequest : KendoGridBaseRequest
{
}

The ModelBinder should be specified.

Finally.. last thing to fix is the following... your model binder (mentioned above) needs this line changed:

return Task.FromResult(kendoGridRequest);

to this:

bindingContext.Result = ModelBindingResult.Success(kendoGridRequest);
return Task.CompletedTask;

Kendo Grid declaration with Razor syntax...

Hello...
I´m trying to use your extension with Razor kendo grid syntax, like that :

 @(Html.Kendo().Grid<MyObjectDto>().Name("grid")
                .Columns(columns =>
                {
                    columns.Bound(p => p.Id).Hidden(true);
                   ... //Other
                })
                .Pageable()
                .Groupable()
                .Pageable(x => x.PageSizes(true))
                .Sortable()
                .DataSource(dataSource => dataSource
                    .Ajax()                    
                    .Read(read => read.Action("List", "MyController").Type(HttpVerbs.Post)).Model(model => model.Id(y => y.Id)))
                )

And my Controller :

 public ActionResult List(KendoGridRequest request)
 {
        var list = GetMyDtoList();
        var result= new KendoGridEx<MyObjectDto>(request, list.AsQueryable());
        return Json(result);
 }

My request Skip variable is always null, and if I try to group, I got an javascript error:
Uncaught TypeError: Cannot read property 'length' of undefined

Strange DB Queries on Grouped Sort

Bug in Sort query when grouped. In the example if you open the Employee List Grouping (dynamic) and sort by any field the Company Group is no longer applied.

.net Core - compiler directive leads into troubles

Hey,
we are mirgration asp.net mvc to .net core on the full .net framework. The asp.net MVC Core modelbinder and also "KendoGridMvcRequest" doesn't work in this scenario.
Please make the .net core version aviable for dotnet core on full framework.

It could help if you would provide namespaces for the files. So that the user of your package could choose to use the ASP.Net Binder and Implementation or the ASP.Net Core one.

#if netstandard causes here the issue:
https://github.com/StefH/KendoGridBinderEx/blob/master/KendoGridBinder/ModelBinder/Mvc.AspNetCore/KendoGridMvcModelBinder.cs

 services.AddMemoryCache()
      .AddResponseCaching()
      .AddAuthorization()
      .AddAuthentication()
      .AddMvc(options =>
      {
        options.ModelBinderProviders.Insert(0, new KendoGridMvcModelBinder());
......

Screenshots:
image
image

memory issues with iis worker process

Hi, Thank you for providing this wonderful tool under MIT license.

We have been using this in our app, and lately we found that whenever we run the page that binds kendo grid, there is a huge spike in the w3wp.exe memory and it does not subside even after some hours until app recycle kicks in.

Getting could not load file or assembly

when choose the KendoGridBinderEx.Examples.MVC as a startup project and run the project deal with this error:

Could not load file or assembly 'Linq.PropertyTranslator.Core, Version=1.0.5.0, Culture=neutral, PublicKeyToken=3379bb52ef788d82' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

but project successfully build

Summary Rows Not Showing Correct Data

Hi, I've created a Kendo Grid using KendoGridBinderEx. Thank you for such wonderful work. I have, however, one problem with the Grid. The data at the footer (summary row such as Count and Sum) is not reflecting all the data. It is showing count and sum of the data which is displayed on the current page. For eg, If I have 120 rows and I'm displaying 20 rows per page, then the footer displays count as 20, whereas it should be 120.

Thanks in advance.

Does it work with C# Datatable

Hi,

I've been trying to get your plugin working with Datatables in C#. Basically I have no idea what the output structure will be, it depends on user input therefore I don't have a model.

I have code like:

DataTable dt = GetData(); //Calls function to get data.

then:

var grid = new KendoGridEx<DataRow, DataRow>(request, dt.AsEnumerable().AsQueryable());

return grid;

All I ever get back is the meta data about the C# datarow class. I was wondering how I'd use this with a C# DataTable to actually display the data

NuGet Package Version Number

You may want to check the version number on your NuGet package - it's set to 9.9.9. Is that right? Previous version was 5.0.3

Incompatible with .NET Core 3 / .NET Standard 2.1

I am moving to .NET Core 3.1 and updating all my NuGet packages. This one gives the following error:
"Restored using '.NETFramework, Version=4.61' instead of the target framework..."

Could you please release a version targeting .NET Standard 2.1?

Question - What is your reasoning to license this library under GPL 3.0?

I believe Kendo grid component is heavily used in closed source commercial projects for frontend work, making this library GPL 3.0 makes it unsuitable for those projects.

I would be happy to know if there are open source projects distributing Kendo source code as part of open source distribution.

LGPL or MIT are better suitable for libraries like KendoGridBinderEx e.g.
https://github.com/linmasaki/Kendo.DynamicLinqCore
https://github.com/tayyabnasir22/Kendo-JQuery-Grid-Server-Filtering-Sorting-Aggregate-Mapping

No data returned when used with EF Core 3

Why am I not getting any data returned?
Here is my example.

Controller

public IActionResult GridTest() => View();

public JsonResult GridTest_Read(KendoGridMvcRequest request)
{
	var data = _db.Tasks;
    var grid = new KendoGrid<ScheduledTask, TaskModel>(request, data.AsQueryable());
    return Json(grid, new JsonSerializerSettings());
}

Models


public class ScheduledTask
{
	public int Id { get; set; }
	public string Title { get; set; }
	public DateTime? DueDate { get; set; }
	public virtual ApplicationUser CreatedBy { get; set; }
}

public class TaskModel
{
	public int Id { get; set; }
	public string Title { get; set; }
	public DateTime? DueDate { get; set; }
	public string ApplicationUserName { get; set; }
}

AutoMapper

public class MappingProfile : Profile
    {
        public MappingProfile()
        {
            CreateMap<ScheduledTask, TaskModel>()
                .ForMember(vm => vm.ApplicationUserName, conf => conf.MapFrom(ol => ol.CreatedBy.UserName));

        }
    }

Response
{"Groups":null,"Data":[],"Aggregates":null,"Total":39}

Filters not working with dates

I am using the .NET Core 2 example and added a new property to the the EmployeeModel

public DateTime? HireDate { get; set; }

If I then try and filter on this column and select "is null" as the filter criteria I get this error.

System.FormatException: String '' was not recognized as a valid DateTime. at System.DateTimeParse.Parse(ReadOnlySpan1 s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at KendoGridBinder.Containers.FilterObject.GetExpression[TEntity](String field, String op, String param, String ignoreCase)
at KendoGridBinder.Containers.FilterObject.GetExpression1TEntity
at KendoGridBinder.KendoGrid2.GetFiltering(FilterObjectWrapper filter) at KendoGridBinder.KendoGrid2.ApplyFiltering(IQueryable1 query, FilterObjectWrapper filter) at KendoGridBinder.KendoGrid2..ctor(KendoGridBaseRequest request, IQueryable1 query, Dictionary2 mappings, Func2 conversion, IEnumerable1 includes)
at KendoGridBinder.KendoGrid1..ctor(KendoGridBaseRequest request, IEnumerable1 source, Dictionary2 mappings, Func2 conversion, IEnumerable1 includes) at OfficeManager.Features.Project.ProjectController.Project_Read2(KendoGridMvcRequest request) in C:\Data\Repos\TDK1964\OfficeManager\OfficeManager\Features\Project\ProjectController.cs:line 96 at lambda_method(Closure , Object , Object[] ) at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in C:\projects\dotnet\src\MiniProfiler.AspNetCore\MiniProfilerMiddleware.cs:line 107 at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

`
var url = '@Url.Action("Grid")';

var dataSource = {
    serverPaging: true,
    serverSorting: true,
    serverFiltering: true,
    pageSize: 10,
    transport: {
        read: {
            type: 'post',
            dataType: 'json',
            url: url
        }
    },
    schema: {
        data: 'Data',
        total: 'Total',
        model: {
            id: 'EmployeeId',
            fields: {
                FirstName: { type: 'string' },
                LastName: { type: 'string' },
                Email: { type: 'string' },
                HireDate: { type: 'date' }
            }
        }
    }
};

$('#grid').kendoGrid({
    dataSource: dataSource,
    height: 410,
    columns: [
        { field: 'FirstName', title: 'First Name' },
        { field: 'LastName', title: 'Last Name' },
        { field: 'Email', title: 'E-Mail' },
        { field: 'HireDate', title: 'Hire Date' }
    ],
    filterable: true,
    sortable: true,
    pageable: true
});`

NuGet package unlisted

Just wondering why the NuGet package has been unlisted. I didn't see any notes as to why in the README. I find it's still working just fine in .NET 6. If there's a security issue or something, please mention it in the README. It would be good to know. Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.