Обновление ViewState JavaScript на стороне клиента в формах asp .net - PullRequest
3 голосов
/ 03 февраля 2011

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

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

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

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

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

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

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

1 Ответ

5 голосов
/ 03 февраля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...