PostbackUrl динамических GridViews не то, что я думаю, что они должны быть - PullRequest
0 голосов
/ 20 января 2011

У меня есть пара GridView, которые динамически создаются и помещаются в PlaceHolder.При наведении курсора мыши на кнопку Select отображается __doPostBack('ctl00$bodyPlaceHolder$ctl0X','Select$Y'), где X = то, что я считаю индексом GridView / Control для страницы, а Y = номер строки этого GridView.
Поскольку он динамически создает GridViews, имеет смысл называть их ctl0X, но как использовать эту информацию на PostBack?
У меня даже не было бы этой проблемы, если бы работало добавление SelectedIndexChanged EventHandler, но оно никогда не вызывалось.
Я нашел еще один вопрос, подобный этому, но ответ включал добавление GridView в мои GridViews, который также должен быть динамическим, что возвращает меня к исходной проблеме.

Редактировать
Хорошо, поэтому я установил gridViewDynamic.ID = "blahblah" + r.LastName, таким образом давая каждому GridView уникальное имя, поэтому при наведении курсора на страницу я получаю __doPostBack('ctl00$bodyPlaceHolder$blahblahSmith',Select$Y, я все еще не могу получить доступ к элементамна PostBack, потому что они больше не существуют .Итак, я добавил тот же код создания GridView в if(IsPostBack), который затем называется GridView gView = (GridView)this.Page.FindControl(blahblahSmith).Отлично, gView не равно нулю.Но все данные в строках есть.Вызов gView.Rows[0] возвращает ноль.

1 Ответ

1 голос
/ 20 января 2011

Используйте Page.FindControl ("TheNameYouGaveTheDynamicGridView")

GridView grid = Page.FindControl("TheNameYouGaveTheDynamicGridView") as GridView;

Если вы используете MasterPages, вам нужно использовать другой подход для поиска элемента управления на странице, но это та же предпосылка.1004 *

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