Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Выпадающие списки / 6 сообщений из 6, страница 1 из 1
19.04.2004, 13:55
    #32486340
wells
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
Есть форма перед отправкой которой нужно выбрать значение из нескольких списков. Причём второй должен формироваться на основе выбора первого, а третий на основе выбора второго. Короче: есть список категорий, продуктов и версий. Так вот при выборе определённой категории должен меняться список продуктов и т.д.. Есть вариант с использованием фреймов, но он не подходит.
Как это всё нарисовать на одной странице?
...
Рейтинг: 0 / 0
19.04.2004, 14:15
    #32486379
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
А зачем frame 'ы? Можно всё и так сделать. Но при этом форма будет перегружаться при каждом выборе категории. По событию SelectedIndexChanged первого списка выбираются данные для второго списка, по тому же событию второго списка выбирается данные для третьего и т.д., до бесконечности...
...
Рейтинг: 0 / 0
19.04.2004, 14:23
    #32486401
wells
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
А без перезагрузки формы никак?
Просто, в форме кроме этих списков ещё куча всего. Придётся всё это сохранять, затем разбирать.
...
Рейтинг: 0 / 0
19.04.2004, 17:05
    #32486767
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
Через java-скрипты на клиенте

-- Tygra's --
...
Рейтинг: 0 / 0
19.04.2004, 17:21
    #32486792
wells
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
to tygra: Уже рою в этом направлении! Но есть проблемы. Сделал массив из категорий, внутри ещё по массиву из продуктов. Но при выборе в форме не могу обратиться к массиву. Имя массива это "frmS.selCat.value". Когда передаю его через "onChange()" не могу обратиться к нему как к массиву.
...
Рейтинг: 0 / 0
20.04.2004, 13:59
    #32487796
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выпадающие списки
Я тебе могу показать, как у нас делается, попробуй разберись.
Если увидеть хочешь, как работает, то у нас на сайте (www.ozon.ru) при добавлении адреса в украине

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
  <% If rcount >  0  Then %> 
  var city_name = new Array(<%= ccount %>);
  var city_id = new Array(<%= ccount %>);
  var city_region_id = new Array(<%= ccount %>);
  city_num = <%= ccount %>
  
  city_name [0 ] =  "Другой населенный пункт" ;
  city_id [0 ] =  -99999 ;
  city_region_id [0 ] =  0 ;
  <% End If %>
  
  <asp:repeater id= "cityrepeater"  runat= "server"  enableviewstate= "false" >
    <itemtemplate>
      city_name[<%= cindex %>] =  "<%# DataBinder.Eval(Container.DataItem, " Name ") %>" ;
      city_id[<%= cindex %>] =  "<%# DataBinder.Eval(Container.DataItem, " ID ") %>" ;
      city_region_id[<%= cindex %>] =  "<%# DataBinder.Eval(Container.DataItem, " RegionID ") %>" ;
      <% cindex = cindex +  1  %>
    </itemtemplate>                                            
  </asp:repeater>
          
  <% If rcount >  0  Then %>          
  function regionchange() {
    var ptn2 = MainForm.<%= Replace(RegionList.UniqueID,  ":" ,  "_" ) %>;
    var txt = MainForm.<%= Replace(RegionName.UniqueID,  ":" ,  "_" ) %>;
    var ptn1 = MainForm.<%= Replace(CityList.UniqueID,  ":" ,  "_" ) %>;
    ptn1.options.length =  0 ;
    var optionName = new Option(city_name [0 ], city_id [0 ], false, false);
    ptn1.options[ptn1.length] = optionName;
    for (i =  0 ; i <= city_num; i++) {
      if (city_region_id == ptn2.options[ptn2.selectedIndex].value) {
        var optionName = new Option(city_name[i], city_id[i], false, false);
        ptn1.options[ptn1.length] = optionName;
      };
    };
    if (ptn1.length ==  1 ) {
      ptn1.options.length =  0 ;
      ptn1.disabled = true;
    } else {
      ptn1.disabled = false;
    };
    if ((ptn1.disabled == true) || (ptn2.selectedIndex ==  0 )) {
      txt.value =  "";
      txt.disabled = false;
    } else {
      txt.value = ptn2.options[ptn2.selectedIndex].text;
      txt.disabled = true;
    };
    <% If ccount > 0  Then %>
    citychange();
    <% End If %>
  };
  <% If ccount >  0  Then %>
  function citychange() {
    var ptn1 = MainForm.<%= Replace(CityList.UniqueID, ": ", " _ ") %>;
    var txt = MainForm.<%= Replace(AreaName.UniqueID, " : ", " _ ") %>;
    if ((ptn1.disabled == true) || (ptn1.selectedIndex == 0 )) {
      txt.value = " ";
      txt.disabled = false;
    } else {
      txt.value = ptn1.options[ptn1.selectedIndex].text;
      txt.disabled = true;
    };
  };
  <% End If %>
  regionchange();
  <% End If %>

-- естественно в vb есть такое:
 
      RegionList.Attributes.Add("OnChange ", " regionchange();")


[i]-- Tygra's
--
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Выпадающие списки / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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