2009-11-12 2 views
1

У меня есть элемент управления сеткой на странице. когда страница загружается в первый раз, я привязываю данные к сетке. Но на стороне клиента пользователь может скопировать строку и добавить ее ниже в сетке. Итак, я делаю это с помощью jquery $ (CpRow) .clone (true) .insertAfter (CpRow). Но когда страница является обратной передачей, добавленная клиентская строка теряется из-за viewstate.Обновить состояние представления динамически созданных элементов управления с помощью javascript

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

Заранее спасибо ...

ответ

2

длинные и короткие его в том, что не существует простой способ сделать это. Я удивлен, что вы даже можете отправить отзыв без получения недопустимой ошибки в представлении, учитывая, что коллекция элементов управления (через Request.Form) не будет соответствовать представлению.

Если вы не получаете недопустимые проблемы с представлением в представлении, вы можете сохранить идентификаторы строк, которые вы клонировали в скрытом поле, и выполнить некоторую обработку этих идентификаторов на обратной стороне для повторного добавления клонированных строк на сервер. Это гарантирует, что клонированные строки имеют свои значения, сохраненные в viewstate правильно.

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

1

Состояние представления должно быть создано на стороне сервера. Чтобы изменить сетку и пережить ее, вы должны изменить сетку через какой-то asp.net postback/asp.net ajax post.

+0

или есть ли способ преобразования строки строки строки в строку управления сеткой? – BABA

+0

, не делая обратной передачи и добавляя строку на стороне сервера. – kemiller2002

0

Проблема решена, я использовал скрытые переменные для хранения клонированных строк на сервере, и после того, как произойдет обратная передача, я снова привязываю сетку с добавленными новыми строками.

Спасибо 4 ответа ..

+0

Рад помочь, приветствия. –

+0

, но в этом случае можно щелкнуть кнопкой мыши внутри gridview? –