Проблема MultiSelectList, получение правильного типа - PullRequest
0 голосов
/ 07 декабря 2009

У меня проблемы с получением элементов в мультиселекте для выбора.

У меня есть это:

BookingObject bo = _bs.GetBookingObjects(bookingobjectID.Value).FirstOrDefault();
bo.BookingViews.Load();

MultiSelectList BookingViewsBookingObjects = new MultiSelectList(_bvs.GetBookingViews(), "BookingViewID", "BookingViewName", (IEnumerable<BookingView>)bo.BookingViews.ToList());

BookingViews <-> BookingViewsBookingObjects <-> BookingObjects

Это отношения многих ко многим. _bvs.GetBookingViews () возвращает IQueryable из BookingView, и я не могу получить элементы из выбранного bo.BookingViews.

Что здесь может отсутствовать? я использую неправильный тип?

/ M

1 Ответ

1 голос
/ 07 декабря 2009

Возможно, вам нужно отправить фактическое выбранное значение в последнем параметре «BookingViewID» вместо IEnumerable<BookingView> в качестве дыры IEnumerable<object> это будет IEnumerable<int>, если BookingViewID имеет тип int, что-то вроде:

MultiSelectList BookingViewsBookingObjects = new MultiSelectList(_bvs.GetBookingViews(), "BookingViewID", "BookingViewName", (IEnumerable<int>)bo.BookingViews.Select(a=> a.BookingViewID).ToList());

РЕДАКТИРОВАТЬ: Полный код.

Установить данные (Controller / ViewModel):

   List<KeyValuePair<int, string>> List = new List<KeyValuePair<int,string>>();;
            List.Add(new KeyValuePair<int, string>(1,"Value1"));
            List.Add(new KeyValuePair<int, string>(2,"Value2"));
            List.Add(new KeyValuePair<int, string>(3,"Value3"));
            List.Add(new KeyValuePair<int, string>(4,"Value4"));

            List<int> selected = new List<int>{1,2};

            ViewData["Multi"] = new MultiSelectList(List.AsEnumerable(), "Key", "Value", selected);

(View):

<%= Html.ListBox("MultiSelectList", ViewData["Multi"] as MultiSelectList)%>

Результат:

альтернативный текст http://www.diarioplus.com/files/pictures/multiselectlist.JPG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...