I am using DevExtreme .net controls DropdownBox to display a DataGrid but I can't get selected values in controller on Post method how can i read selected values? My razor :
.Form(f => f.Items(items =>
{
items.AddGroup()
.ColCount(2)
.ColSpan(2)
.Items(groupItems =>
{
groupItems.AddSimpleFor(m => m.IdEmployee).IsRequired(false)
.HelpText("Enter le nom de l'employé")
.Editor(e => e.DropDownBox()
.ValueExpr("Id")
.DisplayExpr("Nom")
.DataSource(d => d.Mvc()
.Controller("RhListeDesEmployes")
.LoadAction("Get")
.LoadMode(DataSourceLoadMode.Raw)
.Key("Id")
)
.Visible(true)
.Placeholder("Selectionner un employé...")
.ShowClearButton(true)
.OnValueChanged("gridBoxIdEmployee_valueChanged")
.ContentTemplate(new TemplateName("EmbeddedDataGridMultipleIdEmployee"))
);
groupItems.AddSimpleFor(m => m.TypeContrat);
groupItems.AddSimpleFor(m => m.Periode);
groupItems.AddSimpleFor(m => m.UniteRecrutement);
groupItems.AddSimpleFor(m => m.DateAmbouche);
});
}));
@using (Html.DevExtreme().NamedTemplate("EmbeddedDataGridMultipleIdEmployee"))
{
@(Html.DevExtreme().DataGrid()
.ID("embedded-datagridMultipleIdEmployee")
.DataSource(new JS(@"component.getDataSource()"))
.Columns(columns => {
columns.Add().DataField("Nom");
columns.Add().DataField("Prenom");
columns.Add().DataField("Departement");
})
.HoverStateEnabled(true)
.Paging(p => p.PageSize(10))
.FilterRow(f => f.Visible(true))
.Scrolling(s => s.Mode(GridScrollingMode.Infinite))
.Height(345)
.Selection(s => s.Mode(SelectionMode.Single))
.SelectedRowKeys(new JS(@"[component.option(""value"")]"))
.OnSelectionChanged(@<text>
function(selectedItems) {
var keys = selectedItems.selectedRowKeys;
component.option("value", keys);
}
</text>)
)
}
function gridBoxIdEmployee_valueChanged(e) {
var $dataGrid = $("#embedded-datagridMultipleIdEmployee");
if ($dataGrid.length) {
var dataGrid = $dataGrid.dxDataGrid("instance");
dataGrid.selectRows(e.value, false);
}
}
The problem is when i call Post in my controller the IdEmployee is not added to the values like so:
even tho the changed value has been updated under "_$submitElement ":
the solution was that each cell has its cellediting template where you can set a custom template and get its values in the controller.