当我尝试通过单击命令按钮从picklist和inputText中获取选定值时,它并没有真正将它们传递给我的控制器。
VF:
<apex:page controller="FieldsAndTypesPicklists" >
<apex:form >
<apex:inputText value="{!newDatasetName}" />
<apex:outputlabel value="Product type: "/>
<apex:selectList value="{!selectedTypeProd}" size="1">
<apex:selectOptions value="{!TypesProduct}"/>
</apex:selectList>
<apex:commandButton value="Add new values" action="{!SaveValues}" />
</apex:form>
</apex:page>
控制器:
public with sharing class FieldsAndTypesPicklists {
public String selectedTypeProd {get; set;}
public String newDatasetName { get; set; }
public void SaveValues() {
System.debug('>>> InputText value: '+newDatasetName);
}
public Set<SelectOption> getTypesProduct(){
System.debug('>>> Select Type value: '+selectedTypeProd);
Set<SelectOption> typesProd = new Set<SelectOption>();
List<Schema.PicklistEntry> picklistEntryList = OpportunityLineItem.TypeProduct__c.getDescribe().getPicklistValues();
for(Schema.PicklistEntry plEntry : picklistEntryList){
String typeProduct = string.ValueOf(plEntry.getValue());
typesProd.add(new SelectOption(typeProduct, typeProduct));
}
return typesProd;
}
}
我已经进行了相应的调试,以查看inputText和picklist所选择的值。
- selectedTypeProd是null
- 没有执行SaveValues()方法
如果我拿出一段代码,其中是所选列表(在VF上)和控制器中的getTypesProduct()方法,它可以很好地用于inputText值。似乎是另一部分影响了执行。
你可以把TypesProduct作为一组字符串。
我也面临着同样的问题,并通过添加multiselect="false"
从
更改代码<apex:selectList value="{!selectedTypeProd}" size="1">
<apex:selectList value="{!selectedTypeProd}" size="1" multiselect="false">