微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DropDownBox 中的 Devextreme DataGrid

如何解决DropDownBox 中的 Devextreme DataGrid

我正在使用 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 没有添加到值中,如下所示:

enter image description here

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

enter image description here

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。