Обновление ViewState JavaScript на стороне клиента в формах asp .net

Я наткнулся на проблему, когда мне нужно отозвать HTML-элементы управления, которые я добавил на стороне клиента, используя JavaScript после обратной передачи (из-за проверки на стороне сервера - это не является обязательным).

Пожалуйста, скажите мне, если я пытаюсь достичь этого, это cr * p, и есть лучший способ сделать это.

По сути, я делаю клонирование элемента управления текстовым полем до 10 раз на странице, когда пользователь нажимает "Добавить", и сохраняет введенные значения из каждого из этих текстовых полей в скрытом поле для чтения в коде позади. Это работает нормально, однако, когда проверка на стороне сервера не проходит после обратной передачи, все эти динамически добавленные (клонированные) текстовые поля исчезают, так как ViewState ничего о них не знает.

Я рассматриваю 2 возможных решения, оба из которых кажутся хакерскими:

  • Перестройте все клонированные текстовые поля в документе onload(), используя сохраненные значения в скрытом поле.

  • оберните форму в панели обновления ajax и поместите клонированные текстовые поля вне нее, таким образом, не обновляя эту часть экрана при обратной передаче

Теперь можно ли как-то "обновить" ViewState, чтобы он знал обо всех HTML-элементах управления, которые я добавил, используя скрипт на стороне клиента? Есть идеи получше? Я хотел бы добиться этого с помощью сценария на стороне клиента, поэтому, к сожалению, не рассматриваю клонирование текстовых полей на стороне сервера.

1 ответ

Решение

Вы не можете изменить ViewState на стороне клиента. Если вы это сделаете, вы аннулируете состояние представления и получите сообщение об ошибке обратной передачи.

В вашем случае вы можете рассмотреть возможность использования javascript и jQuery для рендеринга текстовых полей в событии готовности документа со значениями, хранящимися в скрытом поле. Я бы рекомендовал взглянуть на шаблонизацию jQuery, особенно если вы можете сохранить свои данные в виде JSON в скрытом поле (http://weblogs.asp.net/scottgu/archive/2010/10/04/jquery-templates-data-link-и-глобалисты-принял-как-чиновник-JQuery-plugins.aspx).

Другие вопросы по тегам