Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3 Странности с DropDownList / 12 сообщений из 12, страница 1 из 1
06.12.2011, 17:41:40
    #37561519
ValGer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 Странности с DropDownList
Уважаемые Господа!
Имею какие-то непонятки при работе с 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
06.12.2011, 21:06:00
    #37561848
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 Странности с DropDownList
ValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND
1. Что мешает прицепить без базы, религия? База учебная, у многих есть.
2. Что мешает нагенерить фейковых данных для демонстрации трабла?
...
Рейтинг: 0 / 0
07.12.2011, 09:49:16
    #37562367
ValGer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 Странности с DropDownList
МСУValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND
1. Что мешает прицепить без базы, религия? База учебная, у многих есть.
2. Что мешает нагенерить фейковых данных для демонстрации трабла?

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

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

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

???

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

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

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

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

Добрый день!
Спасибо за участие!
Пробовал и DropDownListFor - те же яйца, только в профиль! О причинах таких "завязок" можете что-нибудь сказать?
Может (хотя и сомнительно) это какой-то "глюк" в самом FrameWork-е, поскольку ничего противоестественного в этой программке я не делаю?
Возможно стоит обратиться к нашему всероссийскому "гуру" по MVC Магданурову?
С уважением ВВГ
...
Рейтинг: 0 / 0
21.12.2011, 11:26:23
    #37586417
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 Странности с DropDownList
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
21.12.2011, 11:33:32
    #37586446
ValGer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 Странности с DropDownList
Pavluha,

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


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