2010-07-11 123 views
1

我想在数据表中创建一个动态选择列表。我可以使用单个选项列表设置默认值,但不能在多个选项列表中设置。我还需要能够将任何更改的值存储在任何行上,希望这些行将绑定到列表中的某个变量。在数据表中设置选择列表的默认值

要做到这一点我创建了一个新的领域对象上我使用(所谓的供应商),被称为 “selected_vendor__c”:

<apex:column headerValue="Vendor"> 

<apex:selectList value="{!i.selected_vendor__c}" size="1" required="true" > 
<apex:selectOptions value="{!VendorList}"/> 
</apex:selectList> 

然后在这里是控制器:

  public List<selectOption> VendorList {get { 
    List<selectOption> myVendorList = new List<selectOption>(); 
    for (Vendor__c vend : [select Name,id from Vendor__c]) 
     myVendorList.add(new selectOption(vend.id, vend.name)); 
    return myVendorList; 
    } 
    private set; 
} 

我遇到的问题是,选择列表中的值始终是列表中的第一个选项,而不是我尝试将其设置为动态。我希望在保存时将它绑定到“{!i.selected_vendor__c}”,但我无法将其设置为默认值。

回答

1

我自己想通了。问题是i.selected_vendor__c的值需要是与供应商列表相对应的id,而不是名称。