mvc dropdownlist
От: Аноним  
Дата: 23.02.10 04:34
Оценка:
объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?
а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?
Re: mvc dropdownlist
От: Аноним  
Дата: 23.02.10 05:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?

А>а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?

интересует типизированный вариант, как создавать объект, как передавать
Re: mvc dropdownlist
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 24.02.10 08:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?


А что конкретно непонятно?

А>а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?


Как вариант через Ajax, при изменении первого выпадающего списка подгружать с сервера значения для второго списка (в MVC есть поддержка JSON). Рекомендую использовать jquery.
Re[2]: mvc dropdownlist
От: Аноним  
Дата: 25.02.10 05:40
Оценка:
Здравствуйте, achmed, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


А>>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?


A>А что конкретно непонятно?


если чесно то все непонятно. для начала как правильно объявить класс, от которого наследовать вьюху? например так?

public class CreatingMenu
    {
        public string Name { get; set; }
        public string Logo { get; set; }
        public int ParentId { get; set; }
        public List<SelectListItem> MenuItems { get; set; } //итемы для списка
    }


как заполнить переменную MenuItems , как затем отрисовать на странице ? типа так <%= Html.DropDownListFor(model=>model.ParentId, MenuItems) %>
в идеале хочу простой пример пошагово, как делать
в инете искал, но такое ощущение что люди или очень умные, и думают что всем все и так понятно, или сами ничего не понимают и пишут заумно чтобы казаться, что они понимают предмет
Re[3]: mvc dropdownlist
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 25.02.10 06:00
Оценка:
Здравствуйте, Аноним, Вы писали:


А>если чесно то все непонятно. для начала как правильно объявить класс, от которого наследовать вьюху? например так?


А>
А>public class CreatingMenu
А>    {
А>        public string Name { get; set; }
А>        public string Logo { get; set; }
А>        public int ParentId { get; set; }
А>        public List<SelectListItem> MenuItems { get; set; } //итемы для списка
А>    }
А>


А>как заполнить переменную MenuItems , как затем отрисовать на странице ? типа так <%= Html.DropDownListFor(model=>model.ParentId, MenuItems) %>


Для DropDownList нужна коллекция SelectListItem, которую следует подготовить в контроллере для представления, например, так:

            ViewData["items"] = new[] {
                new SelectListItem
                {
                                                             Text = "Один",
                                                             Value = "1"
                }, 
                new SelectListItem
                {
                                                             Text = "Два",
                                                             Value = "2"
                }, 
                new SelectListItem
                {
                                                             Text = "Три",
                                                             Value = "3"
                } 
            
            };


и в представлении эти данные использовать так

<%= Html.DropDownList("item", (IEnumerable<SelectListItem>)ViewData["items"])%>



А>в идеале хочу простой пример пошагово, как делать

А>в инете искал, но такое ощущение что люди или очень умные, и думают что всем все и так понятно, или сами ничего не понимают и пишут заумно чтобы казаться, что они
понимают предмет
Re[4]: mvc dropdownlist
От: Аноним  
Дата: 25.02.10 06:35
Оценка:
Здравствуйте, achmed, Вы писали:

A>Здравствуйте, Аноним, Вы писали:



ваш пример использует нетипизированный вариант, а я хочу с типизированным
Re[5]: mvc dropdownlist
От: fmiracle  
Дата: 18.03.10 11:41
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>ваш пример использует нетипизированный вариант, а я хочу с типизированным


А что там типизировать-то? Ключ/значение, причем оба строки.

Ну может тебе это пойдет больше. У меня обычно отображается список "именнованных" элементов из предметной модели. Каждый такой класс в предметной модели унаследован от NamedEntityBase которая имеет Id и Name. Соответственно очень частая операция — сделать DropDownList в котором текст — поле Name, а значения — Id

Сделал хелпер в ControllerBase:

protected List<SelectListItem> CreateSelectList<T>( IEnumerable<T> data, string zeroField, int zeroValue, int selectedId )
    where T : NamedEntityBase
{
    return CreateSelectListInner( data, zeroField, zeroValue, selectedId ).ToList();
}

//Создает данные для выпадающего списка в соответствии Id-Name
//если задано zeroField, то оно добавляется первым со значением 0
private IEnumerable<SelectListItem> CreateSelectListInner<T>( IEnumerable<T> data, string zeroField, int zeroValue, int selectedId )
        where T : NamedEntityBase
{
        if ( zeroField != null )
        {
                yield return new SelectListItem { Value = zeroValue.ToString(), Text = zeroField, Selected = Equals( selectedId, zeroValue ) };
        }

        foreach ( var item in data )
        {
                yield return new SelectListItem { Value = item.Id.ToString(), Text = item.Name.ToString(), Selected = Equals( selectedId, item.Id ) };
        }
}

(на самом деле там еще пачка хелперов — скажем без "невыбранного значения", или для неименованных сущностей, но это уже можно сделать себе по вкусу)

Использование, соответственно, в контроллере:

var model = new ModelViewData
{
    //all fields,
    ClientList = CreateSelectList( ClientDao.GetAll(), "(выберите клиента)", 0, selectedClientId )
};
return View( model );


и во view:

Html.DropDownList( "ClientId", Model.ClientList );
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Re: mvc dropdownlist
От: Аноним  
Дата: 14.06.11 07:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?

А>а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?

Очень интересует второй вопрос по поводу заполнения 2-го списка с помощью Ajax или jquery, если можно, то с примером
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.