Как получить ширину столбца gridview, когда AutoGenerateColumns имеет значение true - PullRequest
1 голос
/ 25 января 2010

У меня есть вид сетки, для которого мне нужно получить ширину столбцов после того, как вид сетки будет привязан к данным. Я должен иметь AutoGenerateColumns = true, потому что столбцы для данных, к которым привязан gridView, не будут исправлены. Проблема, которую я имею, состоит в том, что коллекция столбцов gridview не заполняется, когда AutoGenerateColumns имеет значение true. Есть ли в любом случае, я могу получить ширину каждого столбца после привязки сетки данных? Я пытался использовать RowDataBound и проходить по ячейкам таблицы, но ширина равна 0 для каждого столбца.

Ответы [ 2 ]

3 голосов
/ 26 января 2010

Если вы не устанавливаете ширину столбца для определенного размера (вы этого не делаете), вы не сможете знать ширину сгенерированного столбца, по крайней мере, до события визуализации Page_Render. Html элемента управления не существует до тех пор, и его ширина не может быть известна до тех пор, пока страница не будет преобразована в html и обработанный css прикреплен.

0 голосов
/ 26 января 2010

Возможно, это слишком рано в жизненном цикле элемента управления для доступа к свойствам GridView. Вы пытались получить доступ к ширине столбца GridView в событии DataBound? См. Обзор жизненного цикла страницы *1001* для ASP.NET

.

Событие DataBound:

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

...