Регистрация  |  Вход

Разбираюсь с попап

Всем драсте. Подскажите пожалуйста, как состыковать попап контроллер с уже используемым стандартным контроллер контакт? сунул его рядом с основным используя (extensions) в итоге ругается что не знает что это такое, хотя отдельно попап апекс код работает.

отдельный код на попап

<apex:page controller="tstpopup">
<apex:form >
<apex:commandButton value="Show Pop up" action="{!showPopup}" rerender="tstpopup"/>
<apex:pageBlock >
This is just filler text from the Salesforce General.
</apex:pageBlock>

<apex:outputPanel id="tstpopup">
<apex:outputPanel styleClass="popupBackground" layout="block" rendered="{!displayPopUp}"/>
<apex:outputPanel styleClass="custPopup" layout="block" rendered="{!displayPopUp}">
This is where I would put whatever information I needed to show to my end user.<br/><br/><br/>
<apex:commandButton value="Hide Pop up" action="{!closePopup}" rerender="tstpopup"/>
</apex:outputPanel>
</apex:outputPanel>

</apex:form>

<style type="text/css">
.custPopup{
background-color: white;
border-width: 2px;
border-style: solid;
z-index: 9999;
left: 50%;
padding:10px;
position: absolute;
width: 500px;
margin-left: -250px;
top:100px;
}
.popupBackground{
background-color:black;
opacity: 0.20;
filter: alpha(opacity = 20);
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 9998;
}

</style>
</apex:page>


контроллер
public class tstpopup {     

public boolean displayPopup {get; set;}

public void closePopup() {
displayPopup = false;
}
public void showPopup() {
displayPopup = true;
}

}


в итоге хочу сделать кнопку для создания нового контакта через попап.

Всем драсте. Подскажите пожалуйста, как состыковать попап контроллер с уже используемым стандартным контроллер контакт? сунул его рядом с основным используя (extensions) в итоге ругается что не знает что это такое[img]https://cdn1.radikalno.ru/uploads/2020/3/25/01a6640483f09ae68553c6a01ef506a3-full.jpg[/img], хотя отдельно попап апекс код работает[img]https://cdn1.radikalno.ru/uploads/2020/3/25/16bc3974693638d5fb7b2993fb113f9a-full.jpg[/img].

отдельный код на попап 
[code]<apex:page controller="tstpopup">
    <apex:form >
        <apex:commandButton value="Show Pop up" action="{!showPopup}" rerender="tstpopup"/>
        <apex:pageBlock >
            This is just filler text from the Salesforce General.
        </apex:pageBlock>
 
        <apex:outputPanel id="tstpopup">
        <apex:outputPanel styleClass="popupBackground" layout="block" rendered="{!displayPopUp}"/>
            <apex:outputPanel styleClass="custPopup" layout="block" rendered="{!displayPopUp}">
                This is where I would put whatever information I needed to show to my end user.<br/><br/><br/>
                <apex:commandButton value="Hide Pop up" action="{!closePopup}" rerender="tstpopup"/>
            </apex:outputPanel>
        </apex:outputPanel>
 
    </apex:form>
 
    <style type="text/css">
        .custPopup{
            background-color: white;
            border-width: 2px;
            border-style: solid;
            z-index: 9999;
            left: 50%;
            padding:10px;
            position: absolute;         
            width: 500px;
            margin-left: -250px;
            top:100px;
        }
        .popupBackground{
            background-color:black;
            opacity: 0.20;
            filter: alpha(opacity = 20);
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            z-index: 9998;
        }

    </style>
</apex:page>[/code]
контроллер
[code]public class tstpopup {     

    public boolean displayPopup {get; set;}     
    
    public void closePopup() {        
        displayPopup = false;    
    }     
    public void showPopup() {        
        displayPopup = true;    
    }
    
  }[/code]
в итоге хочу сделать кнопку для создания нового контакта через попап. 

ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm

ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm

Андрей
ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm

Благодарю, с контроллером чутка разобрался.

[quote="Андрей"]ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm[/quote]

Благодарю, с контроллером чутка разобрался. 

Михаил Михальчук
Андрей
ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm

Благодарю, с контроллером чутка разобрался.


Ан нет, показалось. Опять же отдлеьно все работает, а вместе нехатит.

контроллер :

public with sharing class TestPopup {

public Boolean displayPopup {get;set;}

public TestPopup(ApexPages.StandardController controller) {

}

public void showPopup()
{

displayPopup = true;
}

public void closePopup() {
displayPopup = false;

}


}


код страницы:
<apex:page standardController="Contact"  recordSetVar="contacts" extensions="TestPopup">
<apex:form >
<apex:pageBlock title="Contacts List" id="contacts_list">

Filter:
<apex:selectList value="{! filterId }" size="1">
<apex:selectOptions value="{! listViewOptions }"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
<!-- Contacts List -->
<apex:pageBlockTable value="{! contacts }" var="ct">
<apex:column >
<apex:outputLink value="{! URLFOR($Action.Contact.Delete, ct.Id) }">
Del
</apex:outputLink>
</apex:column>
<apex:column value="{! ct.Name }"/>
<apex:column value="{! ct.Email }"/>
<apex:column value="{! ct.Contact_level__c }"/>
<apex:column value="{! ct.AccountId }"/>
<apex:column value="{! ct.ownerid }"/>
<apex:column value="{! ct.CreatedById }"/>
<apex:column value="{! ct.CreatedDate }"/>
</apex:pageBlockTable>
<!-- Pagination -->
<table style="width: 100%"><tr>
<!-- Page X of Y -->
<td>Page: <apex:outputText value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/></td>
<td align="center">
<!-- Previous page -->
<!-- active -->
<apex:commandLink action="{! Previous }" value="« Previous"
rendered="{! HasPrevious }"/>
<!-- inactive (no earlier pages) -->
<apex:outputText style="color: #ccc;" value="« Previous"
rendered="{! NOT(HasPrevious) }"/>
&nbsp;&nbsp;
<!-- Next page -->
<!-- active -->
<apex:commandLink action="{! Next }" value="Next »"
rendered="{! HasNext }"/>
<!-- inactive (no more pages) -->
<apex:outputText style="color: #ccc;" value="Next »"
rendered="{! NOT(HasNext) }"/>
</td>

<td align="right">
<!-- Records per page -->
Records per page:
<apex:selectList value="{! PageSize }" size="1">
<apex:selectOption itemValue="5" itemLabel="5"/>
<apex:selectOption itemValue="20" itemLabel="20"/>
<apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
</td>
</tr></table>


</apex:pageBlock>
</apex:form>
</apex:page>


я так понял не хочет вместе с (recordSetVar="contacts") стыковаться.
Как их подружить?

[quote="Михаил Михальчук"][quote="Андрей"]ошибка же все обьясняет
чтобы обьявить класс как экстеншен у него должен быть подходящий конструктор, а у тебя его нет
в твоем конкретном случае ты должен иметь в классе tstpopup конструктор который принимает на вход ApexPages.StandardSetController controller

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_custom_list_controller.htm[/quote]

Благодарю, с контроллером чутка разобрался.[/quote]
Ан нет, показалось. Опять же отдлеьно все работает, а вместе нехатит.

контроллер :
 [code]public with sharing class TestPopup {

public Boolean displayPopup {get;set;}

public TestPopup(ApexPages.StandardController controller) {

}

public void showPopup()
{

displayPopup = true;
}

public void closePopup() {
displayPopup = false;

}


}[/code]
код страницы:
[code]<apex:page standardController="Contact"  recordSetVar="contacts" extensions="TestPopup">
    <apex:form >
                <apex:pageBlock title="Contacts List" id="contacts_list">
			
            Filter: 
            <apex:selectList value="{! filterId }" size="1">
                <apex:selectOptions value="{! listViewOptions }"/>
                <apex:actionSupport event="onchange" reRender="contacts_list"/>
            </apex:selectList>
            <!-- Contacts List -->
            <apex:pageBlockTable value="{! contacts }" var="ct">
                <apex:column >           
           				 <apex:outputLink value="{! URLFOR($Action.Contact.Delete, ct.Id) }">
              				  Del
           			 </apex:outputLink>
        		</apex:column>
                <apex:column value="{! ct.Name }"/>
                <apex:column value="{! ct.Email }"/>
                <apex:column value="{! ct.Contact_level__c }"/>
                <apex:column value="{! ct.AccountId }"/>
                <apex:column value="{! ct.ownerid }"/>                
                <apex:column value="{! ct.CreatedById }"/>  
                <apex:column value="{! ct.CreatedDate }"/>
            </apex:pageBlockTable>
            	<!-- Pagination -->
				<table style="width: 100%"><tr>
    				        				<!-- Page X of Y -->
        			<td>Page: <apex:outputText value=" {!PageNumber} of {! CEILING(ResultSize / PageSize) }"/></td>            
    <td align="center">
        <!-- Previous page -->
<!-- active -->
<apex:commandLink action="{! Previous }" value="« Previous"
     rendered="{! HasPrevious }"/>
<!-- inactive (no earlier pages) -->
<apex:outputText style="color: #ccc;" value="« Previous"
     rendered="{! NOT(HasPrevious) }"/>
&nbsp;&nbsp;  
<!-- Next page -->
<!-- active -->
<apex:commandLink action="{! Next }" value="Next »"
     rendered="{! HasNext }"/>
<!-- inactive (no more pages) -->
<apex:outputText style="color: #ccc;" value="Next »"
     rendered="{! NOT(HasNext) }"/>
    </td>
    
    <td align="right">
        <!-- Records per page -->
        Records per page:
<apex:selectList value="{! PageSize }" size="1">
    <apex:selectOption itemValue="5" itemLabel="5"/>
    <apex:selectOption itemValue="20" itemLabel="20"/>
    <apex:actionSupport event="onchange" reRender="contacts_list"/>
</apex:selectList>
    </td>
</tr></table>


        </apex:pageBlock>
    </apex:form>
</apex:page>[/code]
[img]https://cdn1.radikalno.ru/uploads/2020/3/28/1725c2d9ba88b99df0b465879b59a3ec-full.jpg[/img]

я так понял  не хочет вместе с (recordSetVar="contacts") стыковаться. 
Как их подружить?

Как обычно,час искал ответ перед постом о помощи, и только после загрузки поста наткнулся на ответ.
Я не верно указал public TestPopup(ApexPages.StandardController controller) {

}
Необходимо было добавить public TestPopup(ApexPages.StandardSetController[/b] controller) {

}

To be continued ...

Как обычно,час искал ответ перед постом о помощи, и только после загрузки поста наткнулся на ответ. 
Я не верно указал public TestPopup(ApexPages.[b]StandardController[/b] controller) {
 
}
Необходимо было добавить public TestPopup(ApexPages.Standard[b]Set[/b]Controller[/b] controller) {
 
}

To be continued ...

Правильно сформированный вопрос это уже половина ответа.
Сам часто нахожу ответ именно когда начинаю писать вопрос на форуме.

Правильно сформированный вопрос это уже половина ответа. 
Сам часто нахожу ответ именно когда начинаю писать вопрос на форуме.