Вы можете просто сделать кнопку вызвать действие возвращает ссылку на страницу на новую страницу:
<!-- in page -->
<apex:commandButton action="{!PrintPage}" value="Print"/>
И тогда в вашем контроллере вы может создать ссылку на страницу и добавить любые параметры, необходимые для:
// in controller
public Pagereference PrintPage()
{
Pagereference pr = Page.ThePrintPage;
pr.setRedirect(true);
pr.getParameters().put('searchFilter1', 'someValue');
pr.getParameters().put('searchFilter2', 'someOtherValue');
return pr;
}
Тогда в контроллере для другой страницы вы можете просто прочитать эти параметры и использовать тыс эм в запросе:
string strFilter1 = ApexPgaes.currentPage().getParameters().get('searchFilter1');
Если страница очень похожа, вы просто хотите, чтобы переключить параметр renderAs
на странице тега, используя связанную переменную, и ваши действия просто переключаться, что - вы, вероятно, хотите также отключить видимость других частей страницы, но это спасет вас от повторного запроса и т. д. Конечно, если вам понадобятся две страницы, вы всегда можете упростить вещи, выполнив логику поиска в третьем классе, который содержит все общие код.
Страницы очень похожи, за исключением того, что на вызывающей странице Vf есть 2 таблицы, и я хочу печатать по 1 таблице за раз. Как вы думаете, что будет лучшим способом – Prady
Если кнопки печати за столом, вы все равно можете сделать это так легко, хотя я бы склонен идти с двумя страницами, чтобы сохранить чистоту на самих страницах. –
Думая о том, что вы сказали, я должен позвонить той же странице с переданными параметрами и скрыть нежелательные элементы страницы и изменить атрибут рендеринга на pdf – Prady