Hello,
I saw an example by you guys for razor pages but I need it done for CRUD operations for a data source in the sql server. Assume I have appsettings.json file setup with the correct sql server connection string along with ApplicationDBContext setup in the startup.cs file in the configureservices section to allow dependency injection and the ApplicationDBContext was passed through a constructor for the specified model referenced in the code below to utilize dependency injection. What else would I need to change in the code to allow me to do CRUD operations on razor pages that utilizes entity framework core sql server as its data source?
@page
@model Telerik.Examples.RazorPages.Pages.Grid.GridCrudOperationsModel
@{
ViewData["Title"] = "GridCrudOperations";
}
<h1>GridCrudOperations</h1>
@using Telerik.Examples.RazorPages.Models
@using Kendo.Mvc.UI
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@Html.AntiForgeryToken()
@(Html.Kendo().Grid<OrderViewModel>().Name("grid")
.Groupable()
.Sortable()
.Editable()
.Scrollable()
.ToolBar(x => {
x.Create();
x.Excel();
})
.Columns(columns =>
{
columns.Bound(column => column.Freight);
columns.Bound(column => column.ShipName);
columns.Bound(column => column.ShipCity);
columns.Command(column =>
{
column.Edit();
column.Destroy();
});
})
.Excel(excel => excel
.FileName("Export.xlsx")
.Filterable(true)
.ProxyURL("/Grid/GridCrudOperations?handler=Save")
)
.DataSource(ds => ds.Ajax()
.Read(r => r.Url("/Grid/GridCrudOperations?handler=Read").Data("forgeryToken"))
.Update(u => u.Url("/Grid/GridCrudOperations?handler=Update").Data("forgeryToken"))
.Create(c => c.Url("/Grid/GridCrudOperations?handler=Create").Data("forgeryToken"))
.Destroy(d => d.Url("/Grid/GridCrudOperations?handler=Destroy").Data("forgeryToken"))
.Model(m => m.Id(id => id.OrderID))
.PageSize(10)
)
.Pageable()
)
<script>
function forgeryToken() {
return kendo.antiForgeryTokens();
}
</script>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Telerik.Examples.RazorPages.Models;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Telerik.Examples.RazorPages.Pages.Grid
{
public class GridCrudOperationsModel : PageModel
{
public static IList<OrderViewModel> orders;
public void OnGet()
{
if (orders == null)
{
orders = new List<OrderViewModel>();
Enumerable.Range(0, 50).ToList().ForEach(i => orders.Add(new OrderViewModel
{
OrderID = i + 1,
Freight = i * 10,
ShipName = "ShipName " + i,
ShipCity = "ShipCity " + i
}));
}
}
public JsonResult OnPostRead([DataSourceRequest] DataSourceRequest request)
{
return new JsonResult(orders.ToDataSourceResult(request));
}
public JsonResult OnPostCreate([DataSourceRequest] DataSourceRequest request, OrderViewModel order)
{
order.OrderID = orders.Count + 2;
orders.Add(order);
return new JsonResult(new[] { order }.ToDataSourceResult(request, ModelState));
}
public JsonResult OnPostUpdate([DataSourceRequest] DataSourceRequest request, OrderViewModel order)
{
orders.Where(x => x.OrderID == order.OrderID).Select(x => order);
return new JsonResult(new[] { order }.ToDataSourceResult(request, ModelState));
}
public JsonResult OnPostDestroy([DataSourceRequest] DataSourceRequest request, OrderViewModel order)
{
orders.Remove(orders.FirstOrDefault(x => x.OrderID == order.OrderID));
return new JsonResult(new[] { order }.ToDataSourceResult(request, ModelState));
}
[HttpPost]
public ActionResult OnPostSave(string contentType, string base64, string fileName)
{
var fileContents = Convert.FromBase64String(base64);
return File(fileContents, contentType, fileName);
}
}
}
I have a simple grid setup with the datasource is returning a list.
<kendo-grid name="grid" height="550">
<datasource type="DataSourceTagHelperType.WebApi" page-size="5">
<transport>
<read url="@Url.Action("GetSchedule", "Home")" />
</transport>
</datasource>
<columns>
<column field="SalesRepName" title="Sales Agent" />
<column field="Shift" title="Shift" />
<column field="Phone" title="Phone" />
</columns>
</kendo-grid>
public ActionResult GetSchedule([DataSourceRequest] DataSourceRequest request)
{
// get scheduled sales rep.
var result = _idb.RetrieveCurrentSchedule("LSL", "NH");
var dsResult = result.ToDataSourceResult(request);
return Json(dsResult);
}
I am trying to aggregate my chart data but having no luck, I can do this using jqery version but not the .net core verion.
date is coming from a view model:
DataValue
DataCategory
DataColour
I have multiple entries so I need to sum the DataCategory up.
Ive been trying aggregates.Add and groups.add to the data source but ive had no luck getting the chart to display correctly.
@(Html.Kendo().Chart(Model.ChartSetup)I have a Grid with Popup Edit.
In the popup, there is a required combobox, that should be selected only in Create mode. But in Edit mode, the selected combo value should be readonly. How to implement that logic?
Hello,
I bought kendo UI ASP.NET Core and i using it in my asp net core project.
i want to use kendo ui map in my project and i use tile layer like this
layers: [{
type: "bing", // this layer is the map , layer[0]
imagerySet: "aerialWithLabels",
key: "h0yO0NtadB4lkxJAaBhO~9ZxiGd8wv3tE3MGtwDCVaQ~AvJmJR3vegm0gJw6grYJ2OnnVtgMio1FeEMb4mMBKU2qmxvtIZxx7Hl-rAasXWSH"
}
the key is my key from microsoft bing map.
my question:
i want to use the map without internet connection . i have rastar map on local file in my computer and i want to use this map or bing map offline without internet
is it possible? and how can i do this? i try many guide in the site and i just cant understand what is wrong.
I have attached the exact error message after migrating to core, some of the chart in Kendo is not working.
Please advise if this related to the kendo version or code config change with core?
Thanks
the exception is:
"Processing of the LINQ expression 'GroupByShaperExpression:
KeySelector: t.Year,
ElementSelector:EntityShaperExpression:
EntityType: ProjectBudget
ValueBufferExpression:
ProjectionBindingExpression: EmptyProjectionMember
IsNullable: False
' by 'RelationalProjectionBindingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information."
this happens when the DataSourceRequest contains Group, and the IQueriable items are empty