我使用此代码填写下拉列表
ViewData["projectType"] = new SelectList
(_dataManager.Project.ProjectTypeList(), "Id", "Name");
但如果我不想使用一个表列而是使用两列或更多列,我必须做什么?例如
ViewData["projectType"] = new SelectList
(_dataManager.Project.ProjectTypeList(), "Id", "Name1"+"Name2");
答案 0 :(得分:4)
只需在模型中添加一个属性 ViewModel:
public partial class Project
{
public string FullName
{
get { return Name1 + Name2; }
}
}
并使用此属性:
ViewData["projectType"] = new SelectList(
_dataManager.Project.ProjectTypeList(),
"Id",
"FullName"
);
答案 1 :(得分:0)
您随时可以手动填写SelectList
。
像(我没有测试过):
var list = new SelectList();
var data = _dataManager.Project.ProjectTypeList();
foreach (var d in data){
list.Add(new SelectListItem
(string.Format("{0} {1}",d.Name1,d.Name2), d.Id, isChecked));
}
ViewData["projectType"] = list;
答案 2 :(得分:0)
你应该可以做类似的事情:
ViewData["service_lines"] = new SelectList
(repository.SubcontractService_Lines(), "Id", "Name");
在存储库中:
public class SelectService_LineItem
{
public string Name { get; set; }
public Guid Id { get; set; }
}
public IEnumerable<SelectService_LineItem> SubcontractService_Lines()
{
return
from sl in db.service_lines
select new SelectService_LineItem
{
Name = sl.service_line_name + "" + sl.service_line_name2,
Id = sl.service_line_id
};
}