<ejs-grid id="Grid" allowPaging="true" allowsorting="true" allowFiltering="true" toolbar="@(new List<string>() {"Add","Edit","Delete","Update","Cancel" })" load="load">
<e-grid-editSettings allowAdding="true" allowEditing="true" allowDeleting="true"></e-grid-editSettings>
<e-grid-columns>
<e-grid-column field="Id" headerText="Product ID" isPrimaryKey="true" textAlign="Right" width="160"></e-grid-column>
<e-grid-column field="Author" headerText="Author" width="170"></e-grid-column>
<e-grid-column field="Title" headerText="Title" textAlign="Right" width="170"></e-grid-column>
</e-grid-columns>
</ejs-grid>
<script>
function load() {
this.dataSource = new ej.data.DataManager({ url: "/odata/Books", adaptor: new ej.data.ODataV4Adaptor({ updateType: 'PUT' }) });
}
</script>
|
[Route("api/[controller]")]
public class BooksController : ODataController
{
. . . . .
// GET api/values
[HttpGet]
[EnableQuery]
public IQueryable<Book> Get()
{
return _db.Books;
}
// POST api/values
[HttpPost]
[EnableQuery]
public IActionResult Post([FromBody]Book book)
{
_db.Books.Add(book);
_db.SaveChanges();
return Created(book);
}
// PUT api/values/5
[HttpPut("{id}")]
public async Task<Book> Put(int id, [FromBody] Book book)
{
var entity = await _db.Books.FindAsync(book.Id);
_db.Entry(entity).CurrentValues.SetValues(book);
await _db.SaveChangesAsync();
return book;
}
// DELETE api/values/5
[HttpDelete("{id}")]
public async Task<int> Delete(int key)
{
var od = await _db.Books.FindAsync(key);
_db.Books.Remove(od);
await _db.SaveChangesAsync();
return key;
}
} |