MS Reportviewer - Сохранить развернутые / свернутые узлы в ViewState? - PullRequest
1 голос
/ 27 октября 2008

У меня есть отчет, который заполняется с ObjectDataSource. Отчет включает в себя расширяемые / складываемые узлы на пользователя.

Я разрешаю зрителю фильтровать отчет, установив FilterExpression в источнике данных, затем вызвав ReportViewer1.LocalReport.Refresh(). Это делается во время PostBack.

Это фильтрует результаты, но состояние развернутых / свернутых узлов теряется. Есть ли способ сохранить развернутые / свернутые узлы во ViewState? Или есть лучший способ сделать это вообще?

1 Ответ

1 голос
/ 14 сентября 2012

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

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

По сути, в элементе управления просмотра отчетов есть два скрытых дочерних элемента управления (индексы 4 и 5 в vs2008), для которых выбрано имя события и идентификатор ячейки таблицы, благодаря чему вы можете создать массив в JavaScript и отслеживать состояние всех переключаемых полей.

...