I am attempting to invoke the Kendo mvc extensions from an automated test.
It builds fine, but at runtime I get an exception when I invoke Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(...)
DataSourceRequest request = CreateDefaultDataSourceRequest();
var dataSourceResult = widgets.ToDataSourceResult(request);
// Exception thrown here
The exception is:
System.IO.FileNotFoundException : Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
at Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult
I am running this in both .NET Framework 4.6.2 and .NET Core 3.0. It works fine in .NET Framework, it's just the .NET Core build which fails.
Here is the complete .csproj file:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
Project
Sdk
=
"Microsoft.NET.Sdk"
>
<
PropertyGroup
>
<
TargetFrameworks
>net462;netcoreapp3.0</
TargetFrameworks
>
</
PropertyGroup
>
<
ItemGroup
>
<
PackageReference
Include
=
"NUnit"
Version
=
"3.12.0"
/>
</
ItemGroup
>
<
ItemGroup
>
<
ProjectReference
Include
=
"..\DATMedia.Core\DATMedia.Core.csproj"
/>
</
ItemGroup
>
<
ItemGroup
Condition
=
"'$(TargetFramework)' == 'net462'"
>
<
PackageReference
Include
=
"Telerik.UI.for.AspNet.Mvc5"
Version
=
"2019.3.1023"
/>
</
ItemGroup
>
<
ItemGroup
Condition
=
"'$(TargetFramework)' == 'netcoreapp3.0'"
>
<
PackageReference
Include
=
"Telerik.UI.for.AspNet.Core"
Version
=
"2019.3.1023"
/>
</
ItemGroup
>
<!-- Some Googling suggested this would help, but nope.-->
<
ItemGroup
Condition
=
"'$(TargetFramework)' == 'netcoreapp3.0'"
>
<
FrameworkReference
Include
=
"Microsoft.AspNetCore.App"
/>
</
ItemGroup
>
</
Project
>
I can't find where to indicate the model i.e what's the equavalent of @(Html.Kendo().Grid<Model> in the TagHelper syntax.
Without the model I can't get intellisense for my grid columns and inferred column names (DataAnnotation) are missing.
Can i set a default preset filter value for a grid at runtime?
I'd like to add a isEqualTo value from jquery or similar
.Filter(f => f.Add(a => a.OperatorID).IsEqualTo( ? ))
Hi,
I want to bind a label to a combobox using the tag '<label asp-for="test"></label>'.
I followed the online demo example exactly and it didn't work.
Is this a bug in the code for .NET CORE?
Hi,
I am using the scheduler but would like to pass the entered values in the scheduler (name, description, etc) to my C# controller, ideally within the kendo code in my view.
Could someone advise how to do this? I need to invoke a C# controller method on creation of an appointment.
I am a complete newbie to Kendo UI. I am trying to follow the getting started exercise https://docs.telerik.com/aspnet-mvc/helpers/data-management/grid/binding/custom-binding
Step 1
public ActionResult Index([DataSourceRequest(Prefix = "Grid")] DataSourceRequest request)
{
IQueryable<Order> orders = new NorthwindEntities().Orders;
}
It does not recognise Prefix = "Grid". The type of namespace 'Prefix' could not be found.
I cannot work out what namespace I need to resolve this.
Any help greatly appreciated.
I am using core 2.2 , VS 2017 and Kendo-UI 2019.3.1023
Hello
im trying to apply grouping
Here is my Read method
01.
var result = await _helpDeskDbContext.Set<Ticket>()
02.
.Where(a => a.IsDeleted ==
false
&& AllowedCats.Contains(a.CategoryIdRef.Value))
03.
.OrderBy(a => a.Status.Sort)
04.
.Select(a =>
new
TicketViewModel
05.
{
06.
Assignee = a.AssigneeUser.FullName,
07.
Category = a.Category.Name,
08.
Code = a.Code,
09.
Project = a.Project.Name,
10.
Id = a.Id,
11.
IsEditable = a.Status.IsEditable,
12.
Priority = a.Priority.Name,
13.
Requester = a.Requester.Name,
14.
RequestedOn = a.CreatedDate.ToString(
"yyyy/MM/dd hh:mm tt"
, System.Globalization.CultureInfo.InvariantCulture),
15.
Status = a.Status.Name,
16.
Subject = a.Subject,
17.
StatusCode = a.Status.Code,
18.
PriorityColor =
new
DataItem { text = a.Priority.ForeColor, value = a.Priority.BackColor },
19.
StatusColor =
new
DataItem { text = a.Status.ForeColor, value = a.Status.BackColor },
20.
ProjectColor =
new
DataItem { text = a.Project.ForeColor, value = a.Project.BackColor },
21.
StatusSort = a.Status.Sort
22.
}).ToDataSourceResultAsync(request);
and here is my grid configuration
.DataSource(op =>
{
op.Ajax().Model(m => m.Id(x => x.Id)).Group(a => a.Add(s => s.Assignee)).Read(r => r.Action(
"Read"
,
"Tickets"
));
})
and the sql command from kestrel
SELECT
[t].[Assignee], [t].[Category], [t].[Code0], [t].[Project], [t].[Id], [t].[IsEditable], [t].[Priority], [t].[Requester], [t].[CreatedDate], [t].[c], [t].[Status], [t].[Subject], [t].[StatusCode], [t].[text], [t].[value], [t].[text0], [t].[value0], [t].[text1], [t].[value1], [t].[StatusSort], [t].[FullName], [t].[
Name
], [t].[Code], [t].[
Name
], [t].[IsEditable], [t].[
Name
], [t].[
Name
], [t].[
Name
], [t].[Code], [t].[ForeColor], [t].[BackColor], [t].[ForeColor], [t].[BackColor], [t].[ForeColor], [t].[BackColor], [t].[Sort]
FROM
(
SELECT
[a.AssigneeUser].[FullName]
AS
[Assignee], [a.Category].[
Name
]
AS
[Category], [a].[Code]
AS
[Code0], [a.Project].[
Name
]
AS
[Project], [a].[Id], [a.Status].[IsEditable], [a.Priority].[
Name
]
AS
[Priority], [a.Requester].[
Name
]
AS
[Requester], [a].[CreatedDate], N
'yyyy/MM/dd hh:mm tt'
AS
[c], [a.Status].[
Name
]
AS
[Status], [a].[Subject], [a.Status].[Code]
AS
[StatusCode], [a.Priority].[ForeColor]
AS
[text], [a.Priority].[BackColor]
AS
[value], [a.Status].[ForeColor]
AS
[text0], [a.Status].[BackColor]
AS
[value0], [a.Project].[ForeColor]
AS
[text1], [a.Project].[BackColor]
AS
[value1], [a.Status].[Sort]
AS
[StatusSort]
FROM
[HelpDesk].[Tickets]
AS
[a]
LEFT
JOIN
[HelpDesk].[Contacts]
AS
[a.Requester]
ON
[a].[RequesterIdRef] = [a.Requester].[Id]
LEFT
JOIN
[HelpDesk].[Priorities]
AS
[a.Priority]
ON
[a].[PriorityIdRef] = [a.Priority].[Id]
LEFT
JOIN
[HelpDesk].[Projects]
AS
[a.Project]
ON
[a].[ProjectIdRef] = [a.Project].[Id]
LEFT
JOIN
[HelpDesk].[Categories]
AS
[a.Category]
ON
[a].[CategoryIdRef] = [a.Category].[Id]
LEFT
JOIN
[HelpDesk].[Status]
AS
[a.Status]
ON
[a].[StatusIdRef] = [a.Status].[Id]
LEFT
JOIN
[dbo].[UserInfos]
AS
[a.AssigneeUser]
ON
[a].[AssigneeIdRef] = [a.AssigneeUser].[UserId]
WHERE
([a].[IsDeleted] = 0)
AND
COALESCE
([a].[CategoryIdRef], 0)
IN
(3)
ORDER
BY
[a.AssigneeUser].[FullName], [a.Status].[Sort]
OFFSET 0
ROWS
FETCH
NEXT
10
ROWS
ONLY
)
AS
[t]
ORDER
BY
[t].[FullName]
in the read method gives error 500 and the i looked to my error logs and i found below error
System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'FullName'.
Invalid column name 'Name'.
Invalid column name 'Code'.
Invalid column name 'Name'.
Invalid column name 'Name'.
Invalid column name 'Name'.
Invalid column name 'Name'.
Invalid column name 'Code'.
Invalid column name 'ForeColor'.
Invalid column name 'BackColor'.
Invalid column name 'ForeColor'.
Invalid column name 'BackColor'.
Invalid column name 'ForeColor'.
Invalid column name 'BackColor'.
Invalid column name 'Sort'.
Invalid column name 'FullName'.
please i need help.
am i doing something wrong ? or its in Telerik side
Thanx
Ahmed
my code as blow:
function GridDataSource(gridName,path, readHandler, createHandler, updateHandler,deleteHandler, model) {
var grid = GetGrid(gridName);
var urlRead = '@Url.Content("~")' + encodeURI(path + "?handler=" + readHandler );
var urlCreate = '@Url.Content("~")' + encodeURI(path + "?handler=" + createHandler);
var urlUpdate = '@Url.Content("~")' + encodeURI(path + "?handler=" + updateHandler);
var urlDestroy = '@Url.Content("~")' + encodeURI(path + "?handler=" + deleteHandler);
if (model == null)
model = { id: "Id" };
var dataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
pageSize: 1000,
serverPaging: false,
serverGrouping: false,
transport: {
read: {
url: urlRead,
data: kendo.antiForgeryTokens(),
},
create: {
url: urlCreate,
data: kendo.antiForgeryTokens(),
cache: true
},
update: {
url: urlUpdate,
data: kendo.antiForgeryTokens(),
},
destroy: {
url: urlDestroy,
data: kendo.antiForgeryTokens(),
cache: true
},
parameterMap: function (data, type) {
if (type == "create") {
// send the created data items as the "models" service parameter encoded in JSON
return { models: kendo.stringify(data.models) };
}
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: model
}
});
grid.bind("dataBound", function () {
if (grid.dataSource.data().length>0)
grid.select("tr:eq(0)");
});
grid.setOptions({
dataSource: dataSource,
persistSelection: true,
});
//grid.setDataSource(dataSource);
}
function BtnAddClientClick(e) {
var ds = GetGrid("DgClient").dataSource;
var newRow = kendo.observable({
Id: Guid(),
Clientname: "xxxxx",
Status: "Draft",
Comments: ""
});
var dataItem = ds.insert(0, newRow);
ds.sync();
}
public ActionResult OnPostAddClient([DataSourceRequest]DataSourceRequest request, Cmclient client)
{
var data = Request.Form;
var id = data["Id"][0];
return new JsonResult("OK");
//ds.Cmclient.Add(client);
//ds.SaveChanges();
//return new JsonResult(new[] { client }.ToDataSourceResult(request, ModelState));
}
not work. why? please help.
How can I set the background color of a DropDownList's selected value box. Adding the following to the DropDownList html helper code: .ValueTemplate("<div style='background-color:yellow'>#= data.Role #</div> results in just the background of the value text being colored yellow. The background of the entire box not behind the value text remains unchanged.
Hello,
can you please provide a Sample for using Partial Razor Pages for Grid Create/Edit actions. I want to use my custom Pages within Modal Popups. Haven't found anything in this direction in the documentation or samples here.
Really appreciate your help
Best regards
Paul