0

Page コードがあるとします。

       <apex:pageBlockTable value="{!allContacts}" var="c" >
            <apex:column value="{!c.id}" headervalue="ID"/>
            <apex:column value="{!c.FirstName}" headervalue="First Name"/>
            <apex:column value="{!c.LastName}" headervalue="Last Name"/>
            <apex:column value="{!c.Title}" headervalue="Title"/>
            <apex:column value="{!c.Company}" headervalue="Company"/>
            <apex:column>
                <apex:commandButton action="{!addToRecruits}" value="Recruit">
                    <apex:param assignTo="{!leadID}" name="leadID" value="{!c.id}"/>
                </apex:commandButton>
            </apex:column>
        </apex:pageBlockTable>

および関連するコントローラー:

    public String leadID { get; set; }

    public PageReference addToRecruits() {
        System.debug('LeadID is: ' + leadID);
        List<Lead> potentialCandidate = [SELECT id, FirstName, lastName, Title, Company FROM Lead WHERE id = :leadID];   
        delete potentialCandidate;

        return null;
    }

メソッドに渡せないようleadIDですaddToRecruits()。なぜそうなのか、何か分かりますか?

アップデート:

なんとか解決できました。SOQL を使用してクエリを実行する代わりに、次のスタイルでアプローチしました。

public String leadID { get; set; }
public PageReference addToRecruits() {

    Lead candidate=new Lead(id=leadID);
    ....
}
4

3 に答える 3

1

悪名高いプラットフォームのバグのように見えますか?ここで、apex:param値は、常にapex:commandButtonを使用してコントローラーに送信されるとは限りません(ただし、apex:commandLinkを使用して送信されます)。

問題の簡単な概要と考えられる回避策は、Jeff Douglasによってここに要約されています:http://blog.jeffdouglas.com/2010/03/04/passing-parameters-with-a-commandbutton/

于 2013-01-03T10:22:14.760 に答える
0

パラメーターをコントローラーに渡す方法は 1 つありますが、commandLink も使用します。つまり、使用する必要があります

  • コマンド リンクとコマンド ボタン

例えば:

<apex:commandLink action="{!applyNow}" id="applybuttonLink" style="text-decoration:none">
<apex:commandButton value="Apply now"/>
<apex:param name="passId" assignTo="{!passId}" value="{!Vac.id}"/>
</apex:commandLink>

コントローラ:

public String vacancyId{get;set;} 
于 2014-07-23T09:54:58.917 に答える
0

「rerender」属性を apex:commandButton に追加すると、その機能が開始されます - のようなもの <apex:commandButton rerender="myForm" action="{!addToRecruits}" value="Recruit">

于 2013-01-09T10:39:51.843 に答える