You need to sign in to do that
Don't have an account?
Jaymin Sutarwala 7
Dynamic picklist component
I am trying to create a dynamic picklist component in my VF page. It is displaying the picklist but it is not rendering any values in the picklist. Can anyone take a look and see if they can figure out something?
<apex:page standardController="Quote" standardStylesheets="true" extensions="TestDynamicTableExtension"> <apex:form > <apex:pageBlock id="tDTPageBlock"> <apex:pageBlockSection > <apex:commandButton value="Add a Site"/> <apex:commandButton value="Add FY"/> <apex:dynamicComponent componentValue="{!dynamicTable}" /> <!--apex:pageBlockTable value="" var=""> </apex:pageBlockTable--> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>
public class TestDynamicTableExtension { public List<dynamicTableRow> dynamicTRows = new List<dynamicTableRow>(); public transient List<Schema.PicklistEntry> ple; public transient Schema.DescribeFieldResult fieldResult; public transient List<Component.Apex.SelectOption> options {get; set;} public TestDynamicTableExtension(ApexPages.standardController stdController){ initdynamicTRowsList(); //createTableOnPageLoad(); } /*public List<Component.Apex.SelectOption> getOptions(){ fieldResult = Quote.Primary_Site__c.getDescribe(); ple = fieldResult.getPicklistValues(); for(Schema.PicklistEntry f : ple){ options.add(new Component.Apex.SelectOption(itemlabel=f.getLabel(), itemvalue=f.getValue())); //Component.Apex.SelectOption so = new Component.Apex.SelectOption(); } System.debug('Primary sites: ' + options); return options; }*/ public void initdynamicTRowsList(){ dynamicTableRow dtr = new dynamicTableRow(); dtr.saveDeleteCheckbox = false; dtr.primarySite = null; dynamicTRows.add(dtr); } public Component.Apex.PageBlockTable getDynamicTable(){ Component.Apex.PageblockTable dynamicTbl = new Component.Apex.PageblockTable(); dynamicTbl.value = dynamicTRows; dynamicTbl.var = 'tRow'; //Column 1 - Save Delete checkbox Component.Apex.Column tCol1 = new Component.Apex.Column(); Component.Apex.InputCheckBox saveDelCB = new Component.Apex.InputCheckBox(); tCol1.childComponents.add(saveDelCB); dynamicTbl.childComponents.add(tCol1); //Column 2 - Primary site picklist Component.Apex.Column tCol2 = new Component.Apex.Column(); tCol2.headerValue = 'Primary site'; Component.Apex.SelectList primarySite = new Component.Apex.SelectList(multiselect=false); //Component.Apex.SelectOptions primarySiteValues = new Component.Apex.SelectOptions(); fieldResult = Quote.Primary_Site__c.getDescribe(); ple = fieldResult.getPicklistValues(); options = new List<Component.Apex.SelectOption>(); for(Schema.PicklistEntry f : ple){ options.add(new Component.Apex.SelectOption(itemlabel=f.getLabel(), itemvalue=f.getValue())); } primarySite.expressions.Value = '{!options}'; tCol2.childComponents.add(primarySite); dynamicTbl.childComponents.add(tCol2); //Column 3 - Year 1 Component.Apex.Column tCol3 = new Component.Apex.Column(); tCol3.headerValue = 'Year 1'; Component.Apex.InputText yr1 = new Component.Apex.InputText(); yr1.style = 'width: 50px'; tCol3.childComponents.add(yr1); dynamicTbl.childComponents.add(tCol3); return dynamicTbl; } public class dynamicTableRow{ Boolean saveDeleteCheckbox {get; set;} String primarySite {get; set;} Map<String, Decimal> tcvMap = new Map<String, Decimal>(); } }