объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать?
а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?
Re: mvc dropdownlist
От:
Аноним
Дата:
23.02.10 05:48
Оценка:
Здравствуйте, Аноним, Вы писали:
А>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать? А>а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?
интересует типизированный вариант, как создавать объект, как передавать
Здравствуйте, Аноним, Вы писали:
А>объясните как работать с 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) %>
в идеале хочу простой пример пошагово, как делать
в инете искал, но такое ощущение что люди или очень умные, и думают что всем все и так понятно, или сами ничего не понимают и пишут заумно чтобы казаться, что они понимают предмет
А>если чесно то все непонятно. для начала как правильно объявить класс, от которого наследовать вьюху? например так?
А>
А>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"
}
};
А>в идеале хочу простой пример пошагово, как делать А>в инете искал, но такое ощущение что люди или очень умные, и думают что всем все и так понятно, или сами ничего не понимают и пишут заумно чтобы казаться, что они
понимают предмет
Re[4]: mvc dropdownlist
От:
Аноним
Дата:
25.02.10 06:35
Оценка:
Здравствуйте, achmed, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
ваш пример использует нетипизированный вариант, а я хочу с типизированным
Здравствуйте, <Аноним>, Вы писали:
А>ваш пример использует нетипизированный вариант, а я хочу с типизированным
А что там типизировать-то? Ключ/значение, причем оба строки.
Ну может тебе это пойдет больше. У меня обычно отображается список "именнованных" элементов из предметной модели. Каждый такой класс в предметной модели унаследован от 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, то оно добавляется первым со значением 0private 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 );
Здравствуйте, Аноним, Вы писали:
А>объясните как работать с dropdownlist? если чесно то не понятно ничего, такое ощущение что он недоработанный чтоли, может кто на пальцах сможет показать? А>а еще не понятно как сделать на форме 2 dropdownlist, при выборе значения из первого надо перезаполнить второй-как это в контроллере обрабатывать?
Очень интересует второй вопрос по поводу заполнения 2-го списка с помощью Ajax или jquery, если можно, то с примером