1

我正在使用剑道 ui 批量编辑网格,我想使用下拉列表作为它的一列。我阅读了有关此主题的其他主题,并执行了以下步骤:

1-我创建了一个文本/值列表,并将其命名为 DocumetTypesSelectList 在这样的视图中:

            ViewBag.DocumetTypesSelectList = DocumentTypesBll.GetDocumentTypes().ToList().Select(item => new SelectListItem
        {
            Value = item.DocumentTypeId.ToString(),
            Text = item.Title
        }).ToList();

2-我在我的视图中将 viewbag 转换为 SelectItems 列表,如下所示:

var DocumetTypesSelectList = ViewBag.DocumetTypesSelectList as List<SelectListItem> ?? new List<SelectListItem>();

3-我在网格中添加了一个列,如下所示:

columns.ForeignKey(p => p.DocumentTypeId, (System.Collections.IEnumerable)DocumetTypesSelectList, dataFieldText: "Text", dataFieldValue: "Value")

但它不会打开以选择项目。单击时您可以更改值,单击时它使用 DocumetTypesSelectList 显示文本。在此先感谢非常感谢您的帮助

4

1 回答 1

0

请稍微解释一下

单击时您可以更改值,单击时显示文本

似乎在这里(System.Collections.IEnumerable)DocumetTypesSelectList您错过了正确传递的 DocumetTypesSelectList 对象。您可以在控制器中使用 ViewBag 作为ViewBag.DocumetTypesSelectListEx = DocumetTypesSelectList并在您的视图中使用此 ViewBag 作为(System.Collections.IEnumerable)ViewBag.DocumetTypesSelectListEx

第二件事是,在您的 DocumetTypes 中,您必须有两个字段,一个用于值,一个用于显示。看来您同时拥有“文本”和“价值”。还可以在这里查看演示

于 2014-11-30T12:59:08.783 回答