Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение состояния js 
:(
    Опции темы
HUJG
Дата 5.4.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Долго думал где тему создать в JavaScript или здесь. Решил здесь.
У меня есть два ListBox один с доступными значениями, другой с выбранными. Пользователь на клиенте выбирает значения из доступных (т.е. переносит значения из одного ListBox в другой), потом делает submit на сервер, где сервер обрабатывает выбранные значения.
На клиенте юзаю следующую ф-цию:
Код

function MovePI(target, source)
    {
        if(source.selectedIndex == -1)
            return;
        var o = new Option(source.options[source.selectedIndex].text,              source.options[source.selectedIndex].value, false, true);
        target.options[target.options.length]= o;
        source.options[source.selectedIndex] = null;
    }

Беда заключается в том, что на сервер ничего не приходит. Т.е. targetListBox1.Items.Length == 0;
Как побороть?
PM MAIL   Вверх
Exception
Дата 5.4.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Честно говоря, я в JavaScript профан, но разве надо не так?

Код

function MovePI (target, source)
    {
        if (source.selectedIndex == -1)
            return;
        var o = new Option (source.options[source.selectedIndex].text, source.options[source.selectedIndex].value, false, true);
        target.options.appendChild (o);
        source.options.removeChild (source.options[source.selectedIndex]);
    }

PM   Вверх
HUJG
Дата 5.4.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Да в общем то без разницы я думаю. JS язык более чем демократичный и позволяет над ним по разному извращаться. Но факт остается фактом. И так и так на сервер возвращается пустой targetListBox1

Это сообщение отредактировал(а) HUJG - 5.4.2007, 12:47
PM MAIL   Вверх
Naum
Дата 5.4.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 2
Всего: 15



У листбокса, который target ViewState включен?
Если нет, нужно включить.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
HUJG
Дата 5.4.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



По умолчанию, если ничего не трогать ViewState всегда включен.
PM MAIL   Вверх
Mymik
Дата 5.4.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



HUJG, тебе либо с помощью JS изменять ViewState либо делать AutoPostBack. По другому никак.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Exception
Дата 5.4.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 9
Всего: 186



Как вариант, отправлять и принимать енто через AJAX.
PM   Вверх
HUJG
Дата 5.4.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Тогда объясните мне почему в таких контролах как input все замечательно приходит на сервер. В чем принципиально различие между input и select?
PM MAIL   Вверх
a.S.d
Дата 5.4.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 20.2.2005

Репутация: 2
Всего: 2



Цитата(Mymik @  5.4.2007,  13:54 Найти цитируемый пост)
с помощью JS изменять ViewState

Как это? smile 

HUJG, ListBox хранит свои элементы в ViewState, т.е. изменять их нормально можно только на сервере через Items property.
На клиенте можеш попробовать записывать все изменения в скрытое поле, а на сервере при постбеке проверять это скрытое поле и соответственно вносить изменение в Item collection листбокса.
PM MAIL   Вверх
HUJG
Дата 5.4.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



хм...
Код

<select name="Template:_ctl0:AVPILB1" size="4" id="Template__ctl0_AVPILB1" style="width:100%;">
    <option value="1">John Smith</option>
    <option value="2">Smith John</option>
</select>

a.S.d
В html коде тут все открытым текстом лежит.
P.S. ListBox на клиенте у юзера превращается в <select

Это сообщение отредактировал(а) HUJG - 5.4.2007, 16:31
PM MAIL   Вверх
Mymik
Дата 5.4.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



a.S.d, 
Цитата(a.S.d @  5.4.2007,  16:00 Найти цитируемый пост)
Цитата(Mymik @  5.4.2007,  13:54 Найти цитируемый пост)
с помощью JS изменять ViewState
Как это? smile 

Говорят такое можно сделать, только не бейте, что не знаю как такое сделать.


HUJG, DropDownList не предназначен на отправку измененного контент на сторону сервера.

Exception, предложил одну из верных идей... только эта идея если ты используешь asp.net AJAX а не сам руками пишешь его... хотя если научишься забирать ViewState для все страницы при этом загружая только часть страницы... ну флаг тебе в руки :о) ты будешь крут.
А вообще, еще как вариант, можно записывать данные в HiddenField а на стороне сервера уже распарсивать все это дело... ну вобщем тут уже кому чего хватит... И все же, попробуй поиграться с ViewState там что-то пишут в инете, но я сейчас не успеваю почитать это дело...


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.