Thread ID: |
Created: |
Updated: |
Platform: |
Replies: |
143351 | Mar 15,2019 08:58 AM UTC | May 31,2019 01:45 PM UTC | ASP.NET Core - EJ 2 | 9 |
![]() |
Tags: DataGrid |
[index.cshtml]
@Html.AntiForgeryToken()
<ejs-grid id="Grid" allowPaging="true" load="onLoad" toolbar="@( new List<object>() {"Add","Edit","Delete","Update","Cancel"})">
<e-grid-editsettings allowAdding="true" allowDeleting="true" allowEditing="true" mode="Dialog"></e-grid-editsettings>
<e-data-manager url="/Index?handler=DataSource" adaptor="UrlAdaptor" insertUrl="/Index?handler=Insert" updateUrl="/Index?handler=Update" removeUrl="/Index?handler=Delete" ></e-data-manager>
<e-grid-pageSettings pageCount="5" pageSize="5"></e-grid-pageSettings>
<e-grid-columns>
. . . .
</e-grid-columns>
</ejs-grid>
<script>
function onLoad() {
this.dataSource.dataSource.headers = [{ 'XSRF-TOKEN': $("input:hidden[name='__RequestVerificationToken']").val() }];
}
</script> |
[index.cshtml]
<ejs-grid id="Grid" allowPaging="true" toolbar="@(new List<string>() {"Add", "Edit", "Update", "Delete" })" actionComplete="actionComplete">
<e-grid-editSettings allowAdding="true" allowDeleting="true" allowEditing="true" mode="Dialog" template='#dialogtemplate'></e-grid-editSettings>
<e-data-manager url="/Home/UrlDataSource" adaptor="UrlAdaptor" insertUrl="/Home/Insert" updateUrl="/Home/Update" removeUrl="/Home/Remove"></e-data-manager>
<e-grid-columns>
. . . .
</e-grid-columns>
</ejs-grid>
[HomeController.cs]
public async Task<IActionResult> Update([FromBody]CRUDModel<Orders> model)
{
var data = order.Where(or => or.OrderID == model.Value.OrderID).FirstOrDefault();
if(data != null)
{
. . . .
}
return Json(model.Value);
} |
application/x-www-form-urlencoded; charset=UTF-8
since the ValidateAntiForgeryToken
will look for the token in the form encoded data. Please refer the below code example for more information.
[index.cshtml]
@Html.AntiForgeryToken()
<ejs-grid id="Grid" allowPaging="true" toolbar="@(new List<string>() {"Add", "Edit", "Update", "Delete" })" created="created" actionComplete="actionComplete">
<e-grid-editSettings allowAdding="true" allowDeleting="true" allowEditing="true" mode="Dialog" template='#dialogtemplate'></e-grid-editSettings>
<e-grid-columns>
. . . .
</e-grid-columns>
</ejs-grid>
<script id='dialogtemplate' type="text/x-template">
<div id="dialogTemp">
</div>
</script>
<script type="text/javascript">
function created() {
class CustomAdaptor extends ej.data.UrlAdaptor {
insert(dm, data, tableName) {
this.updateType = 'add';
return {
url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
//Added the anti-forgery token.
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: data,
table: tableName,
action: 'insert'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
};
}
update(dm, keyField, value, tableName) {
this.updateType = 'update';
this.updateKey = keyField;
return {
type: 'POST',
url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
//Added the anti-forgery token.
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: value,
action: 'update',
keyColumn: keyField,
key: value[keyField],
table: tableName
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
};
}
remove(dm, keyField, value, tableName) {
new ej.data.JsonAdaptor.prototype.remove(dm, keyField, value);
return {
type: 'POST',
url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
//Added the anti-forgery token.
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
key: value,
keyColumn: keyField,
table: tableName,
action: 'remove'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
};
}
}
var grid = document.querySelector('#Grid').ej2_instances[0];
grid.dataSource = new ej.data.DataManager({
url: "/Home/UrlDatasource/",
insertUrl: "/Home/Insert/",
updateUrl: "/Home/Update",
removeUrl:"/Home/Remove",
adaptor: new CustomAdaptor()
});
}
[HomeController.cs]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Insert([FromBody]CRUDModel<Orders> value)
{
order.Insert(0, value.Value);
return Json(value.Value);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Update([FromBody]CRUDModel<Orders> model, string action, string __RequestVerificationToken)
{
var data = order.Where(or => or.OrderID == model.Value.OrderID).FirstOrDefault();
if(data != null)
{
data.OrderID = model.Value.OrderID;
data.CustomerID = model.Value.CustomerID;
data.EmployeeID = model.Value.EmployeeID;
data.OrderDate = model.Value.OrderDate;
data.ShipCity = model.Value.ShipCity;
data.Freight = model.Value.Freight;
}
return Json(model.Value);
}
[HttpPost]
[ValidateAntiForgeryToken]
public void Remove([FromBody]CRUDModel<Orders> Value)
{
var data = order.Where(or => or.OrderID.Equals(Value.Key)).FirstOrDefault();
order.Remove(data);
}
public class Orders
{
public Orders()
{
}
public Orders(long OrderId, string CustomerId, int EmployeeId, double Freight, DateTime OrderDate, string ShipCity, string ShipCountry)
{
this.OrderID = OrderId;
this.CustomerID = CustomerId;
this.EmployeeID = EmployeeId;
this.Freight = Freight;
this.OrderDate = OrderDate;
this.ShipCity = ShipCity;
this.ShipCountry = ShipCountry;
}
|
This post will be permanently deleted. Are you sure you want to continue?
Sorry, An error occured while processing your request. Please try again later.
This page will automatically be redirected to the sign-in page in 10 seconds.