J’ai une grid hiérarchique de Kendo dans laquelle la grid principale contient les détails du Client
et la sous-grid contient le Point of Contacts
. Je peux transmettre l’ Client ID
de la grid principale dans la sous-grid Action de Read
et le chargement des données est correct. Toutefois, le problème survient lors de la transmission de l’ Client ID
dans un bouton Add New Point of Contact
un Add New Point of Contact
dans la sous-grid. Si je code la valeur, la méthode du contrôleur fonctionne correctement. Cependant, il est impossible de choisir l’ Client ID
référence.
La sous grid est la suivante:
@(Html.Kendo().Grid() .Name("grid_#=ClientID#") .Columns(columns => { columns.Bound(p => p.POC_ClientID); columns.Bound(p => p.ContactName); columns.Bound(p => p.RegionName).Filterable(filterable => filterable.UI("regionFilter")); columns.Bound(p => p.CountryName).Filterable(filterable => filterable.UI("countryFilter")); columns.Bound(p => p.ContactEmail); columns.Bound(p => p.ContactNumber); }) .ToolBar(toolbar => toolbar.Template(@ Add new Point-of-Contact)) .DataSource(dataSource => dataSource .Ajax() .PageSize(10) .Read ( read => read.Action("ClientBinding_PointOfContacts", "PointOfContact", new { clientID = "#=ClientID#" }) ) ) .Pageable() .Sortable() .ToClientTemplate() )
La sous-grid se lie correctement à la grid principale; Par conséquent, ClientID est lu correctement dans la sous-grid. Cependant, je ne peux pas lire la même chose dans le bouton Add New
.
EDIT 1: Ceci est ma grid principale (parent):
@(Html.Kendo().Grid() .Name("grid") .Columns(columns => { columns.Bound(e => e.ClientName); columns.Template(@).ClientTemplate("Edit Delete"); }) .Sortable() .Pageable() .Scrollable() .ClientDetailTemplateId("template") .HtmlAtsortingbutes(new { style = "height:430px;" }) .DataSource(dataSource => dataSource .Ajax() .Model(model => model.Id(e => e.ClientID)) .PageSize(6) .Read(read => read.Action("Client_Read", "PointOfContact")) ) .Events(events => events.DataBound("dataBound")) .ToolBar(toolbar => toolbar.Template(@Add new Client)) )
EDIT 2: j’ai essayé de passer le lien via l’URL de création mais cela me donne une erreur Cannot perform runtime binding on a null reference
.ToolBar(toolBar => { toolBar.Create(); toolBar.Save(); }) .DataSource(dataSource => dataSource .Ajax() .Model(model => { model.Id(p => p.POC_ClientID); }) .PageSize(10) .Read ( read => read.Action("ClientBinding_PointOfContacts", "PointOfContact", new { clientID = "#=ClientID#" }) ) .Create(create => create.Action("CreatePOC", "PointOfContact", new { pclientID = Model.Id })) ) .Pageable() .Sortable() .ToClientTemplate()