Dynamic Query and Dynamic class-(12/31/12)
Here we have a scenario -->Create a Textbox(object name) and search button:
if the value entered in textbox is equal to object name then display that object records
in a Pageblocktabke below it else display error.
in a Pageblocktabke below it else display error.
VF Page:-
<apex:page controller="practice4">
<apex:form >
<apex:pageBlock >
<apex:pagemessages ></apex:pagemessages>
<apex:pageBlockSection title="Object Name">
<apex:pageBlockSectionItem >
<apex:outputLabel value="Enter Object Name"/>
<apex:inputText value="{!objname}"/>
</apex:pageBlockSectionItem>
<apex:commandButton value="Search" action="{!search}"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="List of Records" rendered="{!show}">
<apex:pageBlockTable value="{!innervar}" var="a">
<apex:column headerValue="Record ID" value="{!a.str1}"/>
<apex:column headerValue="Record Name" value="{!a.str2}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
<apex:form >
<apex:pageBlock >
<apex:pagemessages ></apex:pagemessages>
<apex:pageBlockSection title="Object Name">
<apex:pageBlockSectionItem >
<apex:outputLabel value="Enter Object Name"/>
<apex:inputText value="{!objname}"/>
</apex:pageBlockSectionItem>
<apex:commandButton value="Search" action="{!search}"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="List of Records" rendered="{!show}">
<apex:pageBlockTable value="{!innervar}" var="a">
<apex:column headerValue="Record ID" value="{!a.str1}"/>
<apex:column headerValue="Record Name" value="{!a.str2}"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Apex Class:-
------
public class practice4 {
public String objname { get; set; }
public List<myclass> innervar{get;set;}
public boolean show{get;set;}
public practice4 (){
show=true;
innervar=new List<myclass>();
}
public class myclass{
public Id str1{get;set;}
public String str2{get;set;}
public myclass(ID id,String name){
str1=id;
str2=name;
}
}
public void search() {
try{
Schema.SObjectType t = Schema.getGlobalDescribe().get(objname);
if(t!=null){
show=true;
String SOQL = 'SELECT id,Name FROM ' + t;
for (List<SObject> sobjs : Database.query(SOQL)) {
for (SObject sobj : sobjs) {
innervar.add(new myclass(sobj.id,String.valueOf(sobj.get('name'))));
}
}
}
else{
show=false;
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,' Please Enter Existing Object Name!'));
}
}
catch(Exception e){
}
}
}
public String objname { get; set; }
public List<myclass> innervar{get;set;}
public boolean show{get;set;}
public practice4 (){
show=true;
innervar=new List<myclass>();
}
public class myclass{
public Id str1{get;set;}
public String str2{get;set;}
public myclass(ID id,String name){
str1=id;
str2=name;
}
}
public void search() {
try{
Schema.SObjectType t = Schema.getGlobalDescribe().get(objname);
if(t!=null){
show=true;
String SOQL = 'SELECT id,Name FROM ' + t;
for (List<SObject> sobjs : Database.query(SOQL)) {
for (SObject sobj : sobjs) {
innervar.add(new myclass(sobj.id,String.valueOf(sobj.get('name'))));
}
}
}
else{
show=false;
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,' Please Enter Existing Object Name!'));
}
}
catch(Exception e){
}
}
}
No comments:
Post a Comment