|
|
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
Уважаемые Господа! Имею какие-то непонятки при работе с 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2011, 17:41:40 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
ValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND 1. Что мешает прицепить без базы, религия? База учебная, у многих есть. 2. Что мешает нагенерить фейковых данных для демонстрации трабла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2011, 21:06:00 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
МСУValGerК сожалению, сайтик прицепить не могу - весит 6 Мбайт с базой NORTHWIND 1. Что мешает прицепить без базы, религия? База учебная, у многих есть. 2. Что мешает нагенерить фейковых данных для демонстрации трабла? Да без базы тоже многовато - 415 Кбайт, а тут разрешено - 150! Демо-сайтик с проблемой могу выслать почтой (ger-valerij@yandex.ru) - пишите! Я пока в полном недоумении по этому поводу. Обойти, конечно, можно, но тогда пользовательский интерфейс получается весьма корявым. С уважением ВВГ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 09:49:16 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
ValGerДа без базы тоже многовато - 415 Кбайт, а тут разрешено - 150! В чем сложность сделать тестовый пример, демонстрирующий проблему? ValGerДемо-сайтик с проблемой могу выслать почтой (ger-valerij@yandex.ru) - пишите! Это никому не нужно. Проблема Ваша, вот и озадачьтесь, как можно без напрягов донести ее в форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 09:57:08 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
МСУ, Ну, "не выходит каменный цветок", никак меньше 400 кбайт не получается. VStudio плодит слишком много внутренней служебной информации. Придётся, видимо, текстом, пришпандоривать (модель, контроллер, View). Приношу извинения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:33:11 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
400 Кб (в архиве) для МСУВ чем сложность сделать тестовый пример , демонстрирующий проблему? ??? Автор, у Вас там в проекте кирпичи вместо файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2011, 17:55:32 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
МСУ, Я не понял, файл что ли не открывается? Это обычный текстовый файл txt - ANSI кодировка. На всякий случай переименовал его в латиницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2011, 09:35:10 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
Сделайте вью-модель, для вашей страницы которая будет служить контейнером всех нужных данных для странички. С вью-моделью намного проще управляться и найти проблемы http://nerddinnerbook.s3.amazonaws.com/Part6.htm и ваши листы будут перестраиваться тогда нормально и без преключений )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 15:05:18 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
ValGer, Конечно у вас все сбрасывается! А что вы хотели? У вас 2 варианта: 1) Или Ajax 2) Или Возвращать полную модель с заданными выбранными ранее значениями. И наконец, используйте DropDownListFor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 15:43:01 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
Pavluha, Добрый день! Спасибо за участие! Пробовал и DropDownListFor - те же яйца, только в профиль! О причинах таких "завязок" можете что-нибудь сказать? Может (хотя и сомнительно) это какой-то "глюк" в самом FrameWork-е, поскольку ничего противоестественного в этой программке я не делаю? Возможно стоит обратиться к нашему всероссийскому "гуру" по MVC Магданурову? С уважением ВВГ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 10:41:11 |
|
||
|
MVC 3 Странности с DropDownList
|
|||
|---|---|---|---|
|
#18+
ValGer, Я же написал вам 2 варианта. Если хотите не перегружать страницу, то Аякс, в другом варианте вы получаете postback и все состояния нужно восстановить. Код: c# 1. 2. Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 11:26:23 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37586446&tid=1360155]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
455ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 769ms |

| 0 / 0 |
