DropDownBox 中的 Devextreme DataGrid

Devextreme DataGrid in DropDownBox

我正在使用 DevExtreme .net 控件 DropdownBox 来显示 DataGrid,但我无法通过 Post 方法在控制器中获取选定值 我该如何读取选定值? 我的剃须刀:

        .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);
    }
}

问题是 当我在我的控制器中调用 Post 时,IdEmployee 不会像这样添加到值中:

即使更改的值已在“_$submitElement”下更新:

解决方案是每个单元格都有其单元格编辑模板,您可以在其中设置自定义模板并在控制器中获取其值。