2

何かが足りないかもしれないと思いますが、sObjectフィールド以外に組み込みの複数選択選択リストコントロールを使用する方法がわかりません。

「Available」と「Selected」のマークが付いた2つのリストオブジェクトと、リスト間でアイテムを移動するための間に矢印が付いたコントロールについて話しています。このコントロールは、ユーザーが複数のアイテムを選択するためのより簡単で見つけやすい方法であり、複数のアイテムを選択するにはShiftキーとCtrlキーが必要なselectListコントロールよりも簡単です。

写真の例のページ

selectListを使用すると、特定のsObjectは必要ありません-ユーザーの選択をコントローラーメンバーの1つに保存できます。また、有効な値のリストを提供するメソッドを作成することもできます-このメソッドは、ハードコーディング、動的計算、またはクエリを使用して、ライブデータを検索することもできます。

特定のsObjectへの参照なしで、文字列値のリストだけで、派手な選択リストコントロールを使用する方法はありますか?

4

2 に答える 2

1

残念ながら、日付や複数選択の選択リストなど、標準のフィールドタイプを使用する唯一の方法は、フィールドをSObjectでバックアップすることです。

私の場合、Visualforceページでこれらの種類のフィールドを使用する必要が生じた場合は、フィールドのバックエンドを提供することを目的としたオブジェクトを作成します。Apexコントローラーで、オブジェクトをインスタンス化し(値を指定する必要はありません)、ページ上のそのオブジェクトのフィールドを参照するだけです。

これは構成側からは少し非効率に見えるかもしれませんが、デフォルトのUIを使用する(SFDCによって行われる改善の対象となる)、組み込みの検証を利用するなど、いくつかの追加の利点があります。

フィールドがSObjectによってサポートされていないことに行き詰まっている場合は、いくつかのjquery複数選択オプションを使用できる可能性があります。私は周りをたくさん見ましたが、実際には何もテストしていません。

于 2011-10-13T02:06:51.767 に答える
1

あなたのクラスで:

public List<SelectOption> getStoryItems()
{
    List<SelectOption> options = new List<SelectOption>();
    options.add(new SelectOption('SAM','Sam I Am'));
    options.add(new SelectOption('GEORGE','George of the Jungle'));
    options.add(new SelectOption('DORA','Dora the Explorer'));
    return options;
}
String[] stories= new String[]{};
public String[] getStories() 
{
    return stories;
}

public void setStories(String[] stories) 
{
    this.stories= stories;
} 

あなたのページで:

<apex:selectList value="{!stories}" multiselect="true">
     <apex:selectOptions value="{!getStoryItems}"/>            
</apex:selectList>

結果はコンマで区切られます。複数選択したくない場合は、複数選択をfalseに設定するだけです。

于 2012-01-11T23:20:08.823 に答える