public sObject sObjectToBind {get;set;}
public String libraryObjectName{get;set;}
public map<String , String> mapFieldToShow{get;set;}
public Map<String, Map<string,string>> UploadData{get;set;}
Map<String , String> uploadMap = new Map<String , String>();
libraryObjectName='Test__c';
mapFieldToShow.put(Label,apiName);
uploadMap.put(Label,'');
UploadData.put(apiName,uploadMap);
Map<String , Schema.SObjectType> globalDescription = Schema.getGlobalDescribe();
Schema.sObjectType sObjType = globalDescription.get(libraryObjectName);
sObjectToBind = sObjType.newSObject();
Map<String , String> uploadMap = new Map<String , String>();
for(String lstfieldItem:mapFieldToShow.keyset())
{
uploadMap.put(lstfieldItem,String.valueOf(sObjectToBind.get(mapFieldToShow.get(lstfieldItem))));
UploadData.put(mapFieldToShow.get(lstfieldItem),uploadMap);
uploadMap = new Map<String , String>();
}
use Map or list for api names
<apex:repeat value="{!UploadData}" var="outerKey">
<apex:pageBlockSection >
<apex:repeat value="{!UploadData[outerKey]}" var="innerKey">
<apex:pageBlockSectionItem rendered="{!IF(innerKey !='filename',(IF(innerKey !='UniqueId',(IF(innerKey !=referencelabel,true,false)),false)),false)}">
<apex:outputLabel value="{!innerKey}" />
<!-- <apex:inputText id="myInputField" value="{!UploadData[outerKey][innerKey]}" required="true" />-->
<apex:inputfield id="myInputField" value="{!sObjectToBind[outerKey]}" />
</apex:pageBlockSectionItem>
</apex:repeat>
public String libraryObjectName{get;set;}
public map<String , String> mapFieldToShow{get;set;}
public Map<String, Map<string,string>> UploadData{get;set;}
Map<String , String> uploadMap = new Map<String , String>();
libraryObjectName='Test__c';
mapFieldToShow.put(Label,apiName);
uploadMap.put(Label,'');
UploadData.put(apiName,uploadMap);
Map<String , Schema.SObjectType> globalDescription = Schema.getGlobalDescribe();
Schema.sObjectType sObjType = globalDescription.get(libraryObjectName);
sObjectToBind = sObjType.newSObject();
Map<String , String> uploadMap = new Map<String , String>();
for(String lstfieldItem:mapFieldToShow.keyset())
{
uploadMap.put(lstfieldItem,String.valueOf(sObjectToBind.get(mapFieldToShow.get(lstfieldItem))));
UploadData.put(mapFieldToShow.get(lstfieldItem),uploadMap);
uploadMap = new Map<String , String>();
}
use Map or list for api names
<apex:repeat value="{!UploadData}" var="outerKey">
<apex:pageBlockSection >
<apex:repeat value="{!UploadData[outerKey]}" var="innerKey">
<apex:pageBlockSectionItem rendered="{!IF(innerKey !='filename',(IF(innerKey !='UniqueId',(IF(innerKey !=referencelabel,true,false)),false)),false)}">
<apex:outputLabel value="{!innerKey}" />
<!-- <apex:inputText id="myInputField" value="{!UploadData[outerKey][innerKey]}" required="true" />-->
<apex:inputfield id="myInputField" value="{!sObjectToBind[outerKey]}" />
</apex:pageBlockSectionItem>
</apex:repeat>
No comments:
Post a Comment