J'ai une grille de hiérarchie Kendo MVC. Mon exemple est simplifié pour la lisibilité.Modèle vide dans le modèle d'éditeur de fenêtres contextuelles pour Kendo MVC Grid Create, aucune valeur par défaut
@(Html.Kendo().Grid<LeagueViewModel>(Model.Leagues)
.Name("grid_#=LeagueTypeId#")
.Columns(columns => { })
.ToolBar(toolbar =>
{
toolbar.Create().Text("Add New League(Window)");
})
.Editable(editable => editable.Mode(GridEditMode.PopUp)
.TemplateName("LeagueEdit")
.Window(w =>
{
w.Position(p => p.Top(200)); // position not working, need to center more vertically
w.Width(800);
}
)
)
.Events(e => e.Edit("leagueEdit"))
.DataSource(dataSource => dataSource
.Server()
.Model(model =>
{
model.Id(p => p.LeagueID);
model.Field(l => l.strSportId).DefaultValue("#=SportId#"); // set default value with parent grid data
model.Field(l => l.strLeagueTypeId).DefaultValue("#=LeagueTypeId#"); // set default value with parent grid data
}
)
.Read(read => read.Action("Bound_League_Read", "Configuration", new { _leagueTypeId = "#=LeagueTypeId#" }))
.Create(create => create.Action("League_Create", "Configuration"))
)
)
Voici mon gestionnaire d'événements javascript. Lorsque vous observez l'objet e.model du gestionnaire après avoir cliqué sur le bouton de création, j'ai les valeurs par défaut que j'ai définies précédemment dans la grille avec DefaultValue ("# = ParentProperty #").
function leagueEdit(e) {
// setting these with default value on model,
// had to have string variants to pass over because template expression syntax
e.model.SportId = parseInt(e.model.strSportId);
e.model.LeagueTypeId = parseInt(e.model.strLeagueTypeId);
}
LeagueEdit.cshtml Quand mon modèle pop-up ouvre, le modèle n'a pas de données. Comment puis-je obtenir des données dans le modèle? J'ai des éléments dans l'éditeur de popup qui ont besoin des valeurs des grilles parentales.
<p>sport: @Model.SportId</p> <!-- value does not carry over -->
<p>leaguetype: @Model.LeagueTypeId</p> <!-- value does not carry over -->