Опции, добавленные к <выбору> JavaScript, потерянным в обратной передаче

Объекты объекта могут упростить cacheing на прикладном уровне. Удача, кэширующая datareader.

13
задан Billy 13 August 2009 в 10:32
поделиться

2 ответа

Лично я предпочитаю модель SAX, так как у XmlReader есть несколько действительно раздражающих ловушек, которые могут вызвать ошибки в вашем коде, которые могут привести к пропуску элементов в вашем коде. Большая часть кода будет структурирована вокруг модели while (rdr.Read ()), но если в этом цикле есть «ReadString» или «ReadInnerXml ()», вы обнаружите, что пропускаете элементы на следующей итерации.

Как SAX основано на событиях, этого никогда не произойдет, так как вы не можете выполнять какие-либо операции, которые заставили бы ваш синтаксический анализатор искать вперед.

Лично я считаю, что Microsoft изобрела идею, что XmlReader лучше с объяснением push / pull модель, но я ее особо не покупаю. Итак, Microsoft думает, что вам не нужно создавать конечный автомат с XmlReader, что для меня не имеет смысла, но в любом случае это ' Параметры хранятся в ViewState. Вы изменяете раскрывающийся список с помощью DOM на стороне клиента, но как насчет ViewState? Вы не изменяете его, поэтому ASP.NET не будет знать, что в раскрывающийся список были внесены какие-либо изменения, когда он перезагружает состояние раскрывающегося списка из ViewState.

Возможное решение

Один из способов - это используйте скрытые переменные для хранения значений, которые вы добавили в раскрывающийся список. Когда элемент управления переходит на сторону сервера, вы можете проверить значение этого скрытого поля и при необходимости добавить элементы в раскрывающийся список.

Вы можете сохранить элементы в строке в формате JSON и проанализировать эту строку, используя .NET Framework DataContractJsonSerializer Class (если вы используете .NET Framework> = 3.5) на стороне сервера. Если вы не используете .NET Framework 3.5, тогда вы можете использовать такие разделители, как - текст1, текст2 | значение1, значение2

18
ответ дан 1 December 2019 в 22:39
поделиться

Единственные данные, которые отправляются обратно на сервер из тега select , - это значение выбранного элемента. Добавляемые вами параметры не отправляются обратно на сервер.

Серверные элементы управления в ASP.NET используют состояние просмотра для хранения объектов ListItem , которые образуют теги option в отображаемых выберите тег . Состояние просмотра обычно отправляется в отдельном скрытом поле, чтобы оно возвращалось на сервер при публикации формы.

Вы можете использовать аналогичную технику для добавляемых вами параметров, помещая их также в скрытое поле,

3
ответ дан 1 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: