StackOverflow コミュニティの皆様、こんにちは。
私は Force.com で開発を行っており、Visualforce と Apex を得意としています。私は Javascript が得意ではありませんが、必要に応じて何とかやってのける傾向があります。最近のプロジェクトで、私は非常に基本的なことに苦労しており、SO が助けを見つけるのに最適な場所であると考えました。
私は apex:pageblocktable(s) を利用して、「利用可能なアクション」をユーザーに提供しています。基本的に、ページが読み込まれ、システムが外部の静的「アクション」テーブルにクエリを実行し、現在のレコードのデータをアクション テーブルのレコードと比較します。完了すると、結果として利用可能なアクションがユーザーに表示されます。
私は1つの問題に直面しています。ユーザーが一般的なアクションを選択したために、パラメーターとして ?id= を渡すことができないアクションがいくつかあります。これを解決するには、JavaScript 数式内に単純な IF CONDITION が必要です。以下にコードを投稿しました...あなたの考えは?
前もって感謝します!
現在のコード:
<apex:pageBlock mode="edit" title="Other Actions">
<apex:pageBlockTable value="{!OtherActions}" var="action">
<apex:column>
<a href="javascript:sforce.console.openPrimaryTab(null, 'https://na15.salesforce.com/apex/{!action.URL__c}?actionname={!action.Name}', true, null, null, null);">{!action.Name}</a>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
私の試み:
以下のコードは機能します。ただし、何らかの理由で、ユーザーが選択したアクションは常にリストの最後のアクションであるかのように動作します。たとえば、3 つのアクションがロードされ、2 番目を選択するとします。システムは、3 番目のアクションを選択したかのように動作します...常に
<apex:pageBlock mode="edit" title="Other Actions">
<apex:pageBlockTable value="{!OtherActions}" var="action">
<apex:column>
<a href="#" onclick="MyFunction();return false;">{!action.Name}</a>
<script type="text/javascript">
function MyFunction() {
if({!action.Name} == 'Test'){
sforce.console.openPrimaryTab(null , 'https://na15.salesforce.com/apex/{!action.URL__c}?id={!action.id}&actionname={!action.Name}', true, ' ', null, null);
}
else{
sforce.console.openPrimaryTab(null , 'https://na15.salesforce.com/apex/{!action.URL__c}?actionname={!action.Name}', true, ' ', null, null);
}
}
</script>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>