2013-04-11 2 views
0

У меня есть таблица, которую я создаю программно, а затем добавляю некоторые строки и данные в метод CreateChildControls(). В ней есть 2 столбца с элементами управления выпадающим списком. Теперь на стороне клиента на основе выбора в раскрывающемся списке я добавляю больше строк, копируя содержимое последней строки. Существует кнопка сохранения, которая при нажатии вызывает приведенную ниже переопределяющую функцию веб-части, чтобы вернуть объект таблицы. Проблема заключается в строках, которые я добавляю на стороне клиента не извлекаются. Сначала извлекаются строки, созданные на стороне сервера. Кто-то, пожалуйста, скажите мне, что я делаю неправильно здесь.Автоматическое управление таблицей

Таким образом, эта вкладка Table = FindControl («Main1») в виде таблицы; tab.rows дать только 3, которые первоначально были созданы на сервере, и не включает в себя 2 новых, которые были созданы на стороне клиента

Public Override Control FindControl(string id) 

{ 

return base.FindControl(id); 

} 

ответ

1

Любые строки добавляется на стороне клиента не будут переданы на сервер - это путь в котором работает технология. Лучшим способом сделать это будет кнопка сохранения для создания PostBack и добавления новых строк на сервере.

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

0

Я считаю, что элементы управления, добавленные на стороне сервера, хранятся в ViewState, а изменения DOM на стороне клиента не влияют на это. Вероятно, для вас и наилучшего пользовательского опыта было бы проще добавить UpdatePanel вокруг вашей таблицы и выпадающих меню, а также добавить ряды на стороне сервера.

+0

Тогда, если я отключу viewstate для таблицы, тогда он не должен знать о строках и данных, которые он содержит. Я пробовал, хотя это не работает. – user505210

+0

Нет, это не сработает. Вам определенно нужен ViewState. Вы попробовали решение UpdatePanel? –