MVC заполнить выпадающий список - PullRequest
3 голосов
/ 14 марта 2010

я использую этот код для заполнения выпадающего списка

ViewData["projectType"] = new SelectList  
  (_dataManager.Project.ProjectTypeList(), "Id", "Name");

но что мне делать, если я хочу использовать не один столбец таблицы, а два или более столбцов? например

ViewData["projectType"] = new SelectList  
  (_dataManager.Project.ProjectTypeList(), "Id", "Name1"+"Name2");

Ответы [ 3 ]

4 голосов
/ 14 марта 2010

Просто добавьте свойство к вашей модели ViewModel:

public partial class Project
{
    public string FullName 
    {
        get { return Name1 + Name2; }
    }
}

и используйте это свойство:

ViewData["projectType"] = new SelectList(
    _dataManager.Project.ProjectTypeList(), 
    "Id", 
    "FullName"
);
0 голосов
/ 14 марта 2010

Вы должны быть в состоянии сделать что-то похожее на это:

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
            };
    }
0 голосов
/ 14 марта 2010

Вы всегда можете заполнить 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...