Hello
My grid is
@using BaranBackOffice_Application.App_GlobalResources
@using BaranBackOffice_Application.ViewModels
<h3>@ModeleResource.Nom</h3>
@(Html.EJ().Grid<ModeleViewModel>("ModeleGrid")
.Datasource(ds => ds.Json((IEnumerable<object>)ViewBag.Modeles).InsertURL("InsertModele").UpdateURL("UpdateModele").Adaptor(AdaptorType.RemoteSaveAdaptor))
.AllowSorting()
.EditSettings(edit => { edit.AllowAdding().AllowEditing(); })
.ToolbarSettings(toolbar =>
{
toolbar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.Add);
items.AddTool(ToolBarItems.Edit);
items.AddTool(ToolBarItems.Update);
items.AddTool(ToolBarItems.Cancel);
});
})
.IsResponsive()
.Columns(col =>
{
col.Field(p => p.mod_Id).HeaderText(ModeleResource.mod_Id).IsIdentity(true).IsPrimaryKey(true).Visible(false).Add();
col.Field(p => p.mod_Reference).HeaderText(ModeleResource.mod_Reference).ValidationRules(v => v.AddRule("required", true)).Add();
col.Field(p => p.mod_Nom).HeaderText(ModeleResource.mod_Nom).ValidationRules(v => v.AddRule("required", true)).Add();
col.Field(p => p.mod_TmoId).HeaderText(TypeModeleResource.tmo_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("tmo_Id").ForeignKeyValue("tmo_Nom").DataSource((IEnumerable<object>)ViewBag.TypeModeles).Add();
col.Field(p => p.mod_CliId).HeaderText(ClientResource.cli_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("cli_Id").ForeignKeyValue("cli_Nom").DataSource((IEnumerable<object>)ViewBag.Clients).Add();
col.Field(p => p.mod_GriId).HeaderText(GriffeResource.gri_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("gri_Id").ForeignKeyValue("gri_Nom").DataSource((IEnumerable<object>)ViewBag.Griffes).Add();
col.Field(p => p.mod_CatId).HeaderText(CatalogueResource.cat_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("cat_Id").ForeignKeyValue("cat_Nom").DataSource((IEnumerable<object>)ViewBag.Catalogues).Add();
col.Field(p => p.mod_Couleur).HeaderText(ModeleResource.mod_Couleur).Add();
col.HeaderText("Détail").Commands(command =>
{
command.Type("detail")
.ButtonOptions(new Syncfusion.JavaScript.Models.ButtonProperties()
{
Text = "Détail",
Width = "100px",
Click = "Detail"
}).Add();
}).Add();
col.Field(p => p.mod_UserCreation).HeaderText(ModeleResource.mod_UserCreation).Visible(false).Add();
col.Field(p => p.mod_UserModification).HeaderText(ModeleResource.mod_UserModification).Visible(false).Add();
col.Field(p => p.mod_DateCreation).HeaderText(ModeleResource.mod_DateCreation).Visible(false).Add();
col.Field(p => p.mod_DateModification).HeaderText(ModeleResource.mod_DateModification).Visible(false).Add();
}))
The important part is
col.Field(p => p.mod_CliId).HeaderText(ClientResource.cli_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("cli_Id").ForeignKeyValue("cli_Nom").DataSource((IEnumerable<object>)ViewBag.Clients).Add();
col.Field(p => p.mod_GriId).HeaderText(GriffeResource.gri_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("gri_Id").ForeignKeyValue("gri_Nom").DataSource((IEnumerable<object>)ViewBag.Griffes).Add();
col.Field(p => p.mod_CatId).HeaderText(CatalogueResource.cat_Nom).ValidationRules(v => v.AddRule("required", true))
.ForeignKeyField("cat_Id").ForeignKeyValue("cat_Nom").DataSource((IEnumerable<object>)ViewBag.Catalogues).Add();
col.Field(p => p.mod_Couleur).HeaderText(ModeleResource.mod_Couleur).Add();
Because the primary key cli_id is foreign key for the class Modele/Griffe and Catalogue
So when in the grid Modele if I select a Client, I want to filter Griffe and Catalogue with only the same foreign key
Please find the main files in attachment
|
@(Html.EJ().Grid<object>("MasterGrid")
.Datasource(ds => ds.Json((IEnumerable<object>)ViewBag.datasource1).UpdateURL("/Grid/Update").InsertURL("/Grid/Insert")
.RemoveURL("/Grid/Remove").Adaptor(AdaptorType.RemoteSaveAdaptor))
.AllowPaging()
.PageSettings(page => page.PageSize(5))
.AllowSelection()
.SelectedRowIndex(0)
.ClientSideEvents(eve => { eve.RowSelected("rowSelected"); })
----
.Columns(col =>
{
col.Field("OrderID").HeaderText("OrderID").Width(100).Add();
col.Field("EmployeeID").HeaderText("Employee Name").ForeignKeyField("EmployeeID").ForeignKeyValue("FirstName")
.DataSource((IEnumerable<object>)ViewBag.dataSource2).TextAlign(TextAlign.Right)
.Width(125).Add();
----
})
)
@(Html.EJ().Grid<object>("DetailGrid")
----
.Columns(col =>
{
col.Field("EmployeeID").HeaderText("Employee ID").IsPrimaryKey(true).TextAlign(TextAlign.Right).Width(100).Add();
col.Field("FirstName").HeaderText("First Name").Width(100).Add();
-----
})
)
<script type="text/javascript">
function rowSelected(args) { // rowSelected event of first Grid
var employeeID = args.data.EmployeeID;
var detaildata = ej.DataManager(window.employeeView).executeLocal(ej.Query().where("EmployeeID", ej.FilterOperators.equal, employeeID, false));
var gridObj = $("#DetailGrid").ejGrid("instance");
gridObj.dataSource(ej.DataManager(detaildata)); // update the filtered dataSource to the second Grid
}
</script>
|