0

salesforce COPE_Tests__CCOPE_Questions__C、およびの 3 つのオブジェクトからデータを取得する Visualforce ページを使用して、オンライン テストを設定しようとしていますCOPE_Options__c。ユーザーが特定のテストを選択すると、次のような呼び出しを行って他のすべてのデータを取得できると思いました。

questions = [select id, name, question_body__c, 
(select id, name, option_body__c from COPE_options__r order by name ASC)
from COPE_questions__c where COPE_test__c = :tid];

そして、 と を使用apex:repeatapex:selectRadio/apex:selectOptionて、実際のテスト フォームを生成します。しかし、何らかの理由でラジオボックスがレンダリングされません。そのため、selectOption リストを作成してから apex:selectOptions を使用する必要があるようです。しかし、これを設定する方法がわかりません。list<selectOption>質問ごとに自動的にパブリックを作成するにはどうすればよいですか?

の配列を設定する方法はありlist<selectOption>ますか?

4

1 に答える 1

0

自動的に作成することについてはわかりませんが、質問オブジェクトをループで調べるのは非常に簡単なはずです。

List<List<SelectOption> options = new List<List<SelectOption>;
for(COPE_Questions__C q : questions){
    List<SelectOption> list = new List<SelectOption>();
    for(COPE_options__r op : q.COPE_options__r){
         list.add(new SelectOption(op.id, op.option_body__c);
    }
    options.add(list);
}

それが役に立てば幸い。

于 2013-07-04T07:52:43.827 に答える