0

こんにちは私はvisualforceでこのようなインターフェイスを作成したい

画像

ここで、最初の列の値はapexコントローラーから取得されます

これをvisualforceで行うことを考えてください。また、ユーザーが2番目の列に移動する値は、どこかに保存されます。カスタム設定を使用することを考えています。使用可能なすべてのオプションは何ですか。

ありがとう

4

1 に答える 1

2

残念ながら、VisualForceで説明している機能を活用する唯一の方法は<apex:inputField>、SObjectの複数選択リストフィールドにバインドするタグを使用することです。このオプションを使用すると、データを保存する場所が提供されますが、構成で可能な値を事前に指定する必要があります(これは、希望するようには聞こえません)。

値を動的に入力する場合は、コントローラーでSelectOptionsのリストを作成し、そのリストを属性が設定された<apex:selectlist>タグにバインドする必要がありmultiselectます(これでは、派手な左矢印と右矢印が表示されないことに注意してください。スクリーンショットに表示されていますが、ユーザーはShift/Ctrlキーを押しながらクリックして複数のオプションを選択できます。

VisualForceスニペット:

<apex:selectList value="{!multiPicklistVal}" multiselect="true">
    <apex:selectOptions value="{!multiPicklistOptions}"/>
</apex:selectList>

Apexコントローラースニペット:

public String[] multiPicklistVal {public get; public set;}
public List<SelectOption> getMultiPicklistOptions() {
    List<SelectOption> opts = new List<SelectOption>();
    opts.add(new SelectOption('Red', 'Red'));
    opts.add(new SelectOption('Green', 'Green'));
    opts.add(new SelectOption('Blue', 'Blue'));
    return opts;
}

このアプローチによりmultiPicklistVal、アクションメソッドで文字列の配列として参照できるようになります。各文字列はユーザ​​ーが選択したものです。ここから、これらを前述のカスタム設定またはカスタムオブジェクトに保存できます(ただし、カスタムオブジェクトルートを使用する場合は、すぐに使用できる機能を使用することもできます。この投稿の上部に記載されています)。

于 2012-05-22T17:04:02.063 に答える