У меня есть страница VF, которая имеет 2 поля даты и кнопку поиска.Как открыть страницу VF как всплывающее окно и передать параметры на эту страницу VF?
При нажатии на поиск я получаю некоторые результаты. У меня также есть еще одна кнопка для печати тех результатов, которые представляют собой не что иное, как новую страницу VF, представленную как pdf.
Я хочу передать эти значения даты на страницу printVF. Я также хочу, чтобы эта страница отображалась как всплывающее окно.
У меня есть pageref с параметрами. Поскольку мне нужно открыть эту страницу как всплывающее окно, мне нужно найти способ использования pageref в окне window.open.
У кого-нибудь есть идеи о том, как это сделать?
Благодаря
Пради
EDIT: Что я сделал построить URL в контроллере и использовать переменный контроллер в window.open. Что-то очень странное происходит ... Когда отображаются результаты поиска в первый раз, и я нажимаю кнопку печати, даты не заполняются в строке, они по умолчанию до сегодняшнего дня. Если я снова нажму кнопку печати, даты будут заполнены правильно по URL-адресу с даты ввода.
public Class1(){
System.debug('inside constructor');
fieldContainer=new DummyTable__c(); // it contains date fields for date inputs
date todays=date.today();
If (fieldContainer.Start_Date__c== null)
{
startdate1=todays;
}else
{
startdate1=fieldContainer.Start_Date__c;
}
If (fieldContainer.End_Date__c== null)
{
enddate1=todays;
}
else
{
enddate1=fieldContainer.End_Date__c;
}
}
public void search()
{
startdate1=fieldContainer.Start_Date__c;
system.debug('startdate1'+startdate1);
enddate1=fieldContainer.End_Date__c;
system.debug('enddate1'+enddate1);
system.debug('inside search()....after clicking search button');
system.debug('startdate1'+startdate1);
system.debug('url'+url);
LoadData();
}
public string geturl()
{
url='apex/VF1?Pstartdate='+string.valueof(startdate1)+'&Penddate='+string.valueof(enddate1);
return url;
}
public string geturlRec()
{
urlRec='apex/VF2?Pstartdate='+string.valueof(startdate1)+'&Penddate='+string.valueof(enddate1);
return urlRec;
}
VF Page
<script language="javascript" type="text/javascript">
function printOut()
{
window.open("{!url}");
}
function printIn()
{
window.showModalDialog("{!urlRec}","dialogWidth:800px; dialogHeight:200px; center:yes");
}
</script>
<div style="width:900px;margin:0 auto;" id="pagediv">
<span style="padding-left:30px;padding-right:10px">From </span><apex:inputfield value="{!fieldContainer.Start_Date__c}" id="startdt" style="padding-left:5px;padding-right:20px;"/>
<span style="padding-left:30px;padding-right:10px">To </span><apex:inputfield value="{!fieldContainer.End_Date__c}" id="enddt" style="padding-left:5px;padding-right:20px;"/>
<span style="padding-left:30px;padding-right:10px"><apex:commandButton action="{!search}" value="Search" ReRender="dtshipdep,dtshiprec,shippageblock"> </apex:commandButton></span>
<apex:commandButton action="{!saveDeparted}" value="Update " ReRender="dtshipdep"></apex:commandButton>
<apex:commandButton value="Print " onclick="printOut();"></apex:commandButton>
mmmix, в моем случае поля формы отправляются на сервер, когда пользователь нажимает кнопку поиска. Я пытаюсь напечатать только результаты поиска. Значения полей формы заданы правильно, когда поиск завершен. Но проблема заключается в том, что проблема связана с кнопками печати в первый раз – Prady
. Кнопка печати имеет обработчик JS, который вызывает Url, сгенерированный при предыдущем вызове сервера. Затем страница вызывает службу, обновляет (включая URL-адрес), поэтому ваш второй клик работает. Вы должны быть ясны в последовательности событий – mmix
спасибо mmix ... это сработало :) – Prady