|
@(Html.EJ().Grid<object>("Editing")
.Datasource(ds => { ds.URL("/odata/Products").Adaptor(AdaptorType.ODataV4Adaptor); })
…...
.Columns(col =>
{
col.Field("ProductID").HeaderText("ProductID").IsPrimaryKey(true).IsIdentity(true).Width(50).Add();
col.Field("SupplierID").HeaderText("SupplierID").Width(50).Add();
col.Field("ProductName").HeaderText("ProductName").Width(50).Add();
})
.ChildGrid(d =>
{
d.Datasource(ds => { ds.URL("/odata/Products(1)/Supplier").Adaptor(AdaptorType.ODataV4Adaptor); })
.QueryString("SupplierID")
.Columns(col =>
{
col.Field("SupplierID").HeaderText("SupplierID").IsPrimaryKey(true).IsIdentity(true).Width(50).Add();
col.Field("CompanyName").HeaderText("CompanyName").Width(50).Add();
});
})
)
[Controller.cs]
[Queryable]
public PageResult<Product> GetProducts(ODataQueryOptions opts)
{
List<Product> emp = db.Products.ToList();
return new PageResult<Product>(opts.ApplyTo(emp.AsQueryable()) as IEnumerable<Product>, null, emp.AsQueryable().Count());
}
// GET: odata/Products(5)
[Queryable]
public PageResult<Product> GetProduct([FromODataUri] int key, ODataQueryOptions opts)
{
IQueryable<Product> emp = db.Products.Where(m => m.ProductID == key);
return new PageResult<Product>(opts.ApplyTo(emp.AsQueryable()) as IEnumerable<Product>, null, emp.AsQueryable().Count());
}
// GET: odata/Products(5)/Supplier
[Queryable]
public PageResult<Supplier> GetSupplier([FromODataUri] int key,ODataQueryOptions opts)
{
IQueryable<Supplier> emp = db.Products.Where(m => m.ProductID == key).Select(m => m.Supplier);
return new PageResult<Supplier>(opts.ApplyTo(emp.AsQueryable()) as IEnumerable<Supplier>, null, emp.AsQueryable().Count());
}
|
|
URL |
Corresponding Method |
|
odata/Products |
public PageResult<Product> GetProducts(ODataQueryOptions opts) |
|
odata/Products(5) |
public PageResult<Product> GetProduct([FromODataUri] int key, ODataQueryOptions opts)
|
|
odata/Products(5)/Supplier |
public PageResult<Supplier> GetSupplier([FromODataUri] int key,ODataQueryOptions opts) |
|
@(Html.EJ().Grid<object>("Editing")
.Datasource(ds => { ds.URL("/odata/Orders").Adaptor(AdaptorType.ODataV4Adaptor); })
…..
.Columns(col =>
{
col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).IsIdentity(true).Width(50).Add();
col.Field("EmployeeID").HeaderText("Employee ID").Width(50).Add();
col.Field("ShipCity").HeaderText("ShipCity").Width(50).Add();
})
.ChildGrid(d =>
{
d.Datasource(ds => { ds.URL("/odata/Orders").Adaptor(AdaptorType.ODataV4Adaptor); })
.QueryString("EmployeeID")
.ClientSideEvents(eve => eve.Load("load")
.Columns(col =>
{
col.Field("OrderID").HeaderText("Order ID").IsPrimaryKey(true).IsIdentity(true).Width(50).Add();
col.Field("EmployeeID").HeaderText("Employee ID").Width(50).Add();
col.Field("ShipCity").HeaderText("ShipCity").Width(50).Add();
});
})
)
<script>
function load(args) {
args.model.dataSource.dataSource.url = "/odata/Orders(" + args.model.parentDetails.parentRowData.OrderID.toString() + ")"
}
</script>
|