Hi rani,
Check this example. Now please take its reference and correct your code.
Database
I have made use of the following table Customers with the schema as follows.
I have already inserted few records in the table.
You can download the database table SQL by clicking the download link below.
Download SQL file
Controller
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
return View();
}
public JsonResult GetCustomers()
{
CustomerEntities entities = new CustomerEntities();
List<Customer> customers = entities.Customers.ToList();
return Json(customers, JsonRequestBehavior.AllowGet);
}
public JsonResult InsertCustomer(Customer customer)
{
CustomerEntities entities = new CustomerEntities();
entities.Customers.AddObject(customer);
entities.SaveChanges();
return Json(entities.Customers.ToList(), JsonRequestBehavior.AllowGet);
}
public JsonResult UpdateCustomer(Customer customer)
{
CustomerEntities entities = new CustomerEntities();
Customer customerForUpdate = entities.Customers.Where(x => x.CustomerId == customer.CustomerId).FirstOrDefault();
customerForUpdate.Name = customer.Name;
customerForUpdate.Country = customer.Country;
entities.SaveChanges();
return Json(customer, JsonRequestBehavior.AllowGet);
}
public JsonResult DeleteCustomer(Customer customer)
{
CustomerEntities entities = new CustomerEntities();
Customer customerForDelete = entities.Customers.Where(x => x.CustomerId == customer.CustomerId).FirstOrDefault();
entities.Customers.DeleteObject(customerForDelete);
entities.SaveChanges();
return Json(customer, JsonRequestBehavior.AllowGet);
}
}
View
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Index</title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.114/styles/kendo.default-v2.min.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="https://kendo.cdn.telerik.com/2020.1.114/js/angular.min.js"></script>
<script type="text/javascript" src="https://kendo.cdn.telerik.com/2020.1.114/js/kendo.all.min.js"></script>
<style type="text/css">
body
{
font-family: Arial;
font-size: 12pt;
}
</style>
<script type="text/javascript">
var app = angular.module("MyApp", ["kendo.directives"]);
app.controller("MyController", function ($scope, $window, $http) {
ApplyKendoGrid();
function ApplyKendoGrid() {
$scope.mainGridOptions = {
dataSource: {
transport: {
read: { url: "Home/GetCustomers", cache: false },
destroy: { url: "Home/DeleteCustomer" },
update: { url: "Home/UpdateCustomer" }
},
schema: {
model: {
id: "CustomerId",
fields: {
CustomerId: { editable: false, nullable: true, type: "number" },
Name: { editable: true, nullable: true, type: "string" },
Country: { editable: true, nullable: true, type: "string" }
}
}
},
pageSize: 2,
serverPaging: false,
serverSorting: false
},
editable: "inline",
sortable: true,
pageable: true,
resizeable: true,
columns: [{ field: "CustomerId", title: "Id", width: '40px' },
{ field: "Name", title: "Name" },
{ field: "Country", title: "Country" },
{
title: 'Action',
width: '200px',
command:
[
{
name: "edit",
text: "Edit",
iconClass: {
edit: "k-icon k-i-edit",
update: "k-icon k-i-save",
cancel: "k-icon k-i-cancel"
}
},
{
name: "destroy",
text: "Delete",
iconClass: "k-icon k-i-delete"
}
]
}
]
};
}
$scope.Insert = function () {
var customer = {
Name: $scope.name,
Country: $scope.country
};
$http({
method: "POST",
url: "Home/InsertCustomer",
params: customer,
headers: { "Content-Type": "application/json" }
}).then(function (data) {
$('#tblCustomers').data('kendoGrid').dataSource.read();
$('#tblCustomers').data('kendoGrid').refresh();
});
}
})
</script>
</head>
<body ng-app="MyApp" ng-controller="MyController">
<kendo-grid k-options="mainGridOptions" id="tblCustomers"></kendo-grid>
<hr />
<table class="table table-condensed">
<tr>
<td>Name : </td>
<td><input type="text" ng-model="name" /></td>
</tr>
<tr>
<td>Country : </td>
<td>
<select ng-model="country">
<option value="">Select</option>
<option value="United States">United States</option>
<option value="India">India</option>
<option value="France">France</option>
<option value="Russia">Russia</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" value="Insert" ng-click="Insert();" class="btn" />
</td>
</tr>
</table>
</body>
</html>
Screenshot