powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3 Странности с DropDownList
12 сообщений из 12, страница 1 из 1
MVC 3 Странности с DropDownList
    #37561519
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые Господа!
Имею какие-то непонятки при работе с DropDownList
Суть задачи состоит в том, что надо по нажатию кнопки рядом с элементом приводить DropDownList к показу некоторого начального элемента списка (сброс). Когда на View один элемент, то никаких проблем не возникает
selectListProduct = new SelectList(listProduct, "ProductID", "ProductName", 1);
на View
@Html.DropDownList("ProductID", (SelectList)ViewBag.selectListProduct, new { style = "width: 20%" })

Но, по существу задачи, элементов DropDownList должно быть два и вот тут-то и начинаются чудеса - они начинают влиять друг на друга. При сбросе одного, сбрасывается и другой, хотя его об этом не просили. Сначала думал, что завязки идут через модель, но сделал View нетипизированной - результат тот же.
Привожу фрагменты кода
Контроллер
public class HomeController : Controller
{
static List<Customer> listCustomer = new List<Customer>();
static List<Product> listProduct = new List<Product>();

static SelectList selectListCustomer;
static SelectList selectListProduct;

[HttpGet]
public ActionResult Index()
{
Инициализация списков
.........................................................................
return View();
}
По нажатию на кнопки - Post-метод
[HttpPost]
public ActionResult Index(string customerButton, string productButton)
{
if (customerButton == "X")
{
selectListCustomer = new SelectList(listCustomer, "CustomerID", "CompanyName", "AZERO"); // Это начальный элемент первого DropDownList
}
else if (productButton == "X")
{
selectListProduct = new SelectList(listProduct, "ProductID", "ProductName", 1); // Это начальный элемент второго DropDownList
};


// По логике один список должен измениться, а второй остаться тем же самым, что и до нажатия на какую-то кнопку
ViewBag.selectListCustomer = selectListCustomer;
ViewBag.selectListProduct = selectListProduct;

return View();
}

View выглядит примитивно:

@using (Html.BeginForm())
{
@Html.DropDownList("CustomerID", (SelectList)ViewBag.selectListCustomer, new { style = "width: 20%" })
<input type="submit" name="customerButton" value = "X"; style="width: 5%; text-align: center;"/>
<br />
@Html.DropDownList("ProductID", (SelectList)ViewBag.selectListProduct, new { style = "width: 20%" })
<input type="submit" name="productButton" value = "X"; style="width: 5%; text-align: center;"/>
}

И где собака зарыта - не пойму!
К сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37561848
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND
1. Что мешает прицепить без базы, религия? База учебная, у многих есть.
2. Что мешает нагенерить фейковых данных для демонстрации трабла?
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37562367
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND
1. Что мешает прицепить без базы, религия? База учебная, у многих есть.
2. Что мешает нагенерить фейковых данных для демонстрации трабла?

Да без базы тоже многовато - 415 Кбайт, а тут разрешено - 150! Демо-сайтик с проблемой могу выслать почтой (ger-valerij@yandex.ru) - пишите!
Я пока в полном недоумении по этому поводу. Обойти, конечно, можно, но тогда пользовательский интерфейс получается весьма корявым.
С уважением ВВГ
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37562384
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGerДа без базы тоже многовато - 415 Кбайт, а тут разрешено - 150!
В чем сложность сделать тестовый пример, демонстрирующий проблему?
ValGerДемо-сайтик с проблемой могу выслать почтой (ger-valerij@yandex.ru) - пишите!
Это никому не нужно. Проблема Ваша, вот и озадачьтесь, как можно без напрягов донести ее в форум.
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37563596
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Ну, "не выходит каменный цветок", никак меньше 400 кбайт не получается. VStudio плодит слишком много внутренней служебной информации. Придётся, видимо, текстом, пришпандоривать (модель, контроллер, View).
Приношу извинения.
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37563657
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
400 Кб (в архиве) для

МСУВ чем сложность сделать тестовый пример , демонстрирующий проблему?

???

Автор, у Вас там в проекте кирпичи вместо файлов?
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37564435
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Я не понял, файл что ли не открывается? Это обычный текстовый файл txt - ANSI кодировка. На всякий случай переименовал его в латиницу.
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37585069
Сделайте вью-модель, для вашей страницы которая будет служить контейнером всех нужных данных для странички. С вью-моделью намного проще управляться и найти проблемы http://nerddinnerbook.s3.amazonaws.com/Part6.htm и ваши листы будут перестраиваться тогда нормально и без преключений ))
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37585157
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer,

Конечно у вас все сбрасывается!
А что вы хотели?
У вас 2 варианта:
1) Или Ajax
2) Или Возвращать полную модель с заданными выбранными ранее значениями.

И наконец, используйте DropDownListFor
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37586323
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

Добрый день!
Спасибо за участие!
Пробовал и DropDownListFor - те же яйца, только в профиль! О причинах таких "завязок" можете что-нибудь сказать?
Может (хотя и сомнительно) это какой-то "глюк" в самом FrameWork-е, поскольку ничего противоестественного в этой программке я не делаю?
Возможно стоит обратиться к нашему всероссийскому "гуру" по MVC Магданурову?
С уважением ВВГ
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37586417
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer,

Я же написал вам 2 варианта.
Если хотите не перегружать страницу, то Аякс, в другом варианте вы получаете postback и все состояния нужно восстановить.

Код: c#
1.
2.
data.Role = user.Role_id; //Здесь устанавливаете значение, которое выбрали
data.Roles = _dataManager.Roles.GetAllRoles();



Код: html
1.
@Html.DropDownListFor(model => Model.Role, Model.Roles)
...
Рейтинг: 0 / 0
MVC 3 Странности с DropDownList
    #37586446
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha,

Спасибо, попробую.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3 Странности с DropDownList
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]