Hello Everyone, In this tutorial, I am going provide a working example that shows you, how to bind the salesforce account records in HTML table and search that records using textbox KEYUP event.
After completing this tutorial, you’ll able to:
- Bind Salesforce record in HTML table.
- Use the KEYUP event of a textbox.
Step 1: Login to your salesforce org. and open developer console.
Step 2: Navigate to File | New | Apex Class and create an apex class called PullAccountRecord and replace the following piece of code.
PullAccountRecord.apxc
public class PullAccountRecord{
public List<AccountWrapper> accRecords{get; set;}
public PullAccountRecord(){
accRecords= new List<AccountWrapper>();
List<Account> acc =[Select Id, Name,Phone,Type from Account order by name asc];
for(Account a:acc){
accRecords.add(new AccountWrapper(a.Name,a.Phone,a.Type));
}
}
class AccountWrapper{
Public string PhoneNumber{get;set;}
Public string IddCountryCode{get;set;}
Public string sType{get;set;}
public AccountWrapper(String PhoneNumber,String IddCountryCode ,String sType){
this.PhoneNumber=PhoneNumber;
this.IddCountryCode=IddCountryCode;
this.sType=sType;
}
}
}
Step 3: Navigate to File | New | Visualforce Page and create a visualforce page called SearchRecordOnKeyUp and replace the following code.
SearchRecordOnKeyUp.vfp
<apex:page controller="PullAccountRecord" sidebar="false">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/JavaScript" />
<apex:form >
<apex:sectionHeader title="Country" subtitle="Account" />
<apex:pageMessages id="errors" />
<apex:pageBlock title="Find Account" mode="edit">
<table width="100%" border="0">
<tr>
<td width="200" valign="top">
<apex:pageBlock title="Parameters" mode="edit" id="criteria">
<table cellpadding="2" cellspacing="2">
<tr>
<td style="font-weight: bold;">
Search By Account Name <br />
<input type="text" id="search" />
</td>
<tr>
<td>
<div style="text-align: center; font-size: 18px; font-family: Calbiri; color: Black;">
Time(HH:MM:SS)
<div id="clock" style="text-align: center; font-size: 30px;">
</div>
</div>
</td>
</tr>
</tr>
</table>
</apex:pageBlock>
</td>
<td valign="top">
<apex:pageBlock mode="edit" id="results">
<apex:pageBlockTable value="{!accRecords}" var="acc" columns="3" id="tblData">
<apex:column width="300">
<apex:outputText value="{!acc.PhoneNumber}" />
</apex:column>
<apex:column width="300">
<apex:outputText value="{!acc.IddCountryCode}" />
</apex:column>
<apex:column width="200">
<apex:outputText value="{!acc.sType}" />
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</td>
</tr>
</table>
</apex:pageBlock>
<script type="text/javascript">
$(document).ready(function(){
$('#search').keyup(function(){
searchTable($(this).val());
});
});
function searchTable(searchText){
var table = $('table[id$=tblData]');
table.find('tr').each(function(index, row){
var allCells = $(row).find('td');
if(allCells.length > 0){
var found = false;
allCells.each(function(index, td){
var regExp = new RegExp(searchText, 'i');
if(regExp.test($(td).text())){
found = true;
return false;
}
});
if(found == true)$(row).show();else $(row).hide();
}
});
}
var int = self.setInterval("clock()",1000);
/*Clock method*/
function clock(){
var d=new Date();
var t=d.toLocaleTimeString();
document.getElementById("clock").innerHTML = "<B>" + t + "</B>";
}
</script>
</apex:form>
</apex:page>
Output:
- Add text boxes dynamically in Visualforce page
- Print number in text format using Visualforce and Apex
- Delete checked value in Pagination in Visualforce Page
Conclusion:
Hope you like this post, for any query's please comment.
Thank you.
Thank you.

0 Comments
Post a Comment