【问题标题】:How to display two column values in Razor drop down list?如何在 Razor 下拉列表中显示两列值?
【发布时间】:2017-03-07 16:27:04
【问题描述】:

名称和 ID 存储在数据库中。我想将数据库中的所有名称和 ID 显示到 ViewPage Dropdown。在这里,我仅在下拉列表中显示名称列。是否可以在单个下拉菜单中显示两列?请让我知道解决方案。谢谢!

以下代码写入控制器:

    var Employe = (from table in dc.tbl_EmployeeDetails
                           select table.Employee_Name).ToList();
    ViewData["empName"] = Employe ;

var department = (from table in dc.tbl_EmployeeDetails
                                      select table.Department).ToList();

                    ViewData["dept"] = department;

客户端代码(ViewPage):-

<select id="reportto" disabled="disabled" font-size:14px">
    @foreach(var person in ViewData["empName"] as List<string>)
                                            {
                                                if(@Model.employee!=@person)
                                                {
                                                    <option>@person</option>
                                                }
                                            }
 </select>

这里我只在下拉列表中显示名称。如何在单个下拉列表中同时显示姓名和部门?

【问题讨论】:

标签: html razor model-view-controller


【解决方案1】:

您可以在 SELECT 中连接员工姓名和部门名称。

var Employe = (from table in dc.tbl_EmployeeDetails
                       select table.Employee_Name + " "+ table.Department).ToList();
ViewData["empName"] = Employe ;

关于改进代码的一些建议

我看到您正在循环浏览这些项目并手动构建选项。为什么不使用 html 辅助方法?

您可以在 SELECT 中连接员工姓名和部门名称。

var employeeList= dc.tbl_EmployeeDetails
                     .Select(x=>new SelectListItem { Value=x.Employee_Name,
                                    Text=x.Employee_Name + " "+ x.Department}).ToList();
ViewData["employeeList"] = employeeList;

现在在您看来,使用 Html.DropDownList 辅助方法

@Html.DropDownList("SelectedEmployee",ViewData["employeeList"] as List<SelectListItem>)

这将生成一个名为“SelectedEmployee”的 SELECT 元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2013-09-15
    相关资源
    最近更新 更多