Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​GridView - скрыть колонку?

119  
Murr патриот27.04.18 15:36
Murr
27.04.18 15:36 
Последний раз изменено 27.04.18 15:38 (Murr)

GridView - скрыть колонку?


Имеем страничку, Имеем а-ля GridView контрол.

Источник данных - в порядке, отрисовка - тоже.


Но! Пара колонок в гриде лишняя и их нужно спрятать.


Умею сделать это через RowDataBound но это надо делать для каждой строки отдельно.


Есть ли вариант спрятать нужные колонки в Гриде, а не поля в строке?


Списка полей в определении грида нет - все строится по предоставленной таблице и в конце на DataBound меняются заголовки столбцов.

#1 
Murr патриот27.04.18 16:50
Murr
NEW 27.04.18 16:50 
в ответ Murr 27.04.18 15:36

Сделал следующее.

При смене DataSource пристроил набивку Columns грида нужными определениями.

Те, которые не нужны - пометил Visible = false;


Работает, но есть проблемы.

Одна из непонятностей - у DataTable есть ColumnName и Caption. Ну еще EncodedColumnName, но оно вроде не к месту.

Подразумевается, что в заголовок для отображения будет помещено содержимое именно Caption.

Но помещается не оно, а ColumnName.


Есть где пнуть чтобы бралось Caption?

#2 
Murr патриот27.04.18 17:44
Murr
NEW 27.04.18 17:44 
в ответ Murr 27.04.18 16:50

И наконец - пятничная изюминка.


Выполняется запрос к базе, возвращающий таблицу из 8-ми полей.

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


В полученной таблице выполняется замена Caption для колонок.

Код отрабатывает чисто - никаких ехцептионов не происходит.


Табличка присваивается потомку GridView с перегруженным DataSourse

На присвоении - аккуратно заполняется Columns грида с установкой имени поля, отображаемого заголовка и видимости.

Затем грид нормальным образом отрисовывается.

Отрисовка - правильная. Т.е. все скрытые колонки - отсутствуют,

Проверяю ХТМЛ - там таблица, первая строка - заголовки - присутствуют только те, которые должны быть.

Дальше, построчно, данные. Пропусков или лишних данных - нет.


Все идеально.


Дальше делается несложная операция - GridView экспортируется в Ехцел-файлик и отдается юзеру.


И вот тут начинается пляска с бубном - невидимые колонки - на месте и пустые...


Что билли повылазило где не надо...


#3 
AlexNek патриот27.04.18 22:49
AlexNek
NEW 27.04.18 22:49 
в ответ Murr 27.04.18 17:44
невидимые колонки - на месте и пустые

Так и "должно быть". Старюсь грид от мелкомягких нигде не пользовать.

Правда бесплатную альтернативу для асп не знаю/ не искал.

#4 
Murr патриот27.04.18 22:58
Murr
NEW 27.04.18 22:58 
в ответ AlexNek 27.04.18 22:49

Ну а у меня другого нет.

Потому - перегрузил и вперед.

#5 
AlexNek патриот27.04.18 23:24
AlexNek
NEW 27.04.18 23:24 
в ответ Murr 27.04.18 22:58, Последний раз изменено 27.04.18 23:32 (AlexNek)

Вроде ничаво так. ... не, в бесплатной версии только 100 строк.

https://www.obout.com/Interface/aspnet_integration_grid.as...

Ну и дальше

http://blog.bhavikpatel.xyz/2014/12/opensource-gridview-co...

#6 
AlexNek патриот27.04.18 23:41
AlexNek
NEW 27.04.18 23:41 
в ответ Murr 27.04.18 22:58

Эта вроде умеет делать экспорт

https://paramquery.com/grid

#7 
Murr патриот28.04.18 01:32
Murr
NEW 28.04.18 01:32 
в ответ AlexNek 27.04.18 23:41

Пыххх...

Я уже починил - просто удалил лишние столбцы в гриде - он же перегружен - делаю что хочу и как мне надо...

#8