0

ユーザーごとに異なる値をロードするページがあります。この値を取得するために、Salesforceで実行されるvisualforceタグを使用しました。オプションは2つしかありません。ユーザーにオプションを選択するオプションを提供していますが、ページを開くユーザーにとってのオプションの値はすでにわかっているので、その値を事前に選択して、変更するオプションをユーザーに提供します。

私は現在このようにやっています、問題はこれが同じオプションを2回作成し、見栄えが良くないということですが、正しい値を事前に選択します、質問は

同じオプションを2回作成せずに、正しい値を事前に選択するにはどうすればよいですか?

 <select id="product" name="liveagent.prechat:Product" style="width:220px" tabindex="5">

                    <option selected="selected">{!$User.Product__c}</option>
                    <option value="Product 1">Product 1</option>
                    <option value="Product 2">Product 2</option>

 </select>

// {!$User.Product__c}はProduct1またはProduct2のいずれかになります。

前もって感謝します!

4

1 に答える 1

0

より良い方法があるかもしれませんが、これを試してみることをお勧めします。

<apex:variable var="SelectedProduct" value="{!IF($User.Product__c=='Product 1','Product 1','Product 2')}" />
<apex:variable var="OtherProduct" value="{!IF($User.Product__c=='Product 2','Product 1','Product 2')}" />

<select id="product" name="liveagent.prechat:Product" style="width:220px" tabindex="5">
    <option value="{!SelectedProduct}" selected="selected" >{!SelectedProduct}</option>
    <option value="{!OtherProduct}" >{!OtherProduct}</option>
</select>

ロジックの一般的な説明は次のとおりです。

  • 「製品1」の場合User.Product__cは、「製品1」を。として設定しSelectedProductます。「製品2」ではないためUser.Product__c、「製品2」を。として設定しOtherProductます。
  • 「製品1」でない場合User.Product__cは、「製品2」を。として設定しSelectedProductます。User.Product__c「Product2」なので、「Product1」を。として設定しますOtherProduct

もちろん、3つ以上の選択オプションが必要な場合、この方法ははるかに複雑になります。

お役に立てば幸いです。

于 2012-05-16T19:30:28.383 に答える