You need to sign in to do that
Don't have an account?
Christian Cequina
Paging Problem Using ParamGrid Table in Visualforce page
I found a reference on how to build a spreadsheet like table in VF page . Here is the link: https://developer.salesforce.com/page/Making_A_Spreadsheet_On_Force.com (https://developer.salesforce.com/page/Making_A_Spreadsheet_On_Force.com" target="_blank)
It uses ParamQuery (http://paramquery.com/grid" target="_blank) .
My problem is when i filter some data, the paging function went wrong.
Any sugestions on how to solve this problem?
Here is the code:
<script>
var myGridData = [];
var myGrid = {};
var $myGrid;
$(function(){
//Create Grid Table
myGrid.title = "MER List";
myGrid.width = 900;
myGrid.height = 600;
myGrid.editable = false;
myGrid.colModel = [
{title:"Id", dataType: "string", hidden: true },
{title:"No.", width:100, dataType:"string"},
{title:"Title", width:150, dataType:"string"}
];
myGrid.render = function (evt, obj) {
var $toolbar = $("<div class='pq-grid-toolbar pq-grid-toolbar-search'></div>").appendTo($(".pq-grid-top", this));
$("<input type='button' value='Filter' class='pq-filter-btn'/>").appendTo($toolbar).click(function () {
pqFilter.search();
});
$("<input type='text' class='pq-filter-txt'/>").appendTo($toolbar).appendTo($toolbar).keyup(function (evt) {
if (evt.keyCode == 13) {
pqFilter.search();
}
});
$("<select id='pq-filter-select-column'>\
<option value='Name'>No.</option>\
<option value='Title__c'>Title</option>\
</select>").appendTo($toolbar).change(function (evt){
pqFilter.search();
});
$("<span class='pq-separator'></span>").appendTo($toolbar);
};
$myrGrid = $("#myGrid_array").pqGrid( myGrid );
getMyGridData();
});
function getMyGridData(){
Visualforce.remoting.Manager.invokeAction('{!$RemoteAction.MyController.queryMyList}',
function(result){
$(result).each(function (i) {
myGridData.push([result[i].Id,
result[i].Name ? result[i].Name : '',
result[i].Title__c ? result[i].Title__c : '']);
});
$myGrid = $("#myGrid_array").pqGrid( "option", "dataModel", { data: myGridData, paging: 'local'} );
}
);
}
var pqFilter = {
search: function () {
var txt = $("input.pq-filter-txt").val().toUpperCase(),
colIndx = $("select#pq-filter-select-column").val();
Visualforce.remoting.Manager.invokeAction('{!$RemoteAction.MyController.filterMyData}',
colIndx, txt,
function(result,event){
gridData =[];
$(result).each(function (i) {
gridData.push( [result[i].Id,
result[i].Name ? result[i].Name : '',
result[i].Title__c ? result[i].Title__c : '']);
});
$myGrid.pqGrid( "option", "dataModel", { data: gridData} );
$myGrid.pqGrid("refresh");
}
);
}
}
</script>
It uses ParamQuery (http://paramquery.com/grid" target="_blank) .
My problem is when i filter some data, the paging function went wrong.
Any sugestions on how to solve this problem?
Here is the code:
<script>
var myGridData = [];
var myGrid = {};
var $myGrid;
$(function(){
//Create Grid Table
myGrid.title = "MER List";
myGrid.width = 900;
myGrid.height = 600;
myGrid.editable = false;
myGrid.colModel = [
{title:"Id", dataType: "string", hidden: true },
{title:"No.", width:100, dataType:"string"},
{title:"Title", width:150, dataType:"string"}
];
myGrid.render = function (evt, obj) {
var $toolbar = $("<div class='pq-grid-toolbar pq-grid-toolbar-search'></div>").appendTo($(".pq-grid-top", this));
$("<input type='button' value='Filter' class='pq-filter-btn'/>").appendTo($toolbar).click(function () {
pqFilter.search();
});
$("<input type='text' class='pq-filter-txt'/>").appendTo($toolbar).appendTo($toolbar).keyup(function (evt) {
if (evt.keyCode == 13) {
pqFilter.search();
}
});
$("<select id='pq-filter-select-column'>\
<option value='Name'>No.</option>\
<option value='Title__c'>Title</option>\
</select>").appendTo($toolbar).change(function (evt){
pqFilter.search();
});
$("<span class='pq-separator'></span>").appendTo($toolbar);
};
$myrGrid = $("#myGrid_array").pqGrid( myGrid );
getMyGridData();
});
function getMyGridData(){
Visualforce.remoting.Manager.invokeAction('{!$RemoteAction.MyController.queryMyList}',
function(result){
$(result).each(function (i) {
myGridData.push([result[i].Id,
result[i].Name ? result[i].Name : '',
result[i].Title__c ? result[i].Title__c : '']);
});
$myGrid = $("#myGrid_array").pqGrid( "option", "dataModel", { data: myGridData, paging: 'local'} );
}
);
}
var pqFilter = {
search: function () {
var txt = $("input.pq-filter-txt").val().toUpperCase(),
colIndx = $("select#pq-filter-select-column").val();
Visualforce.remoting.Manager.invokeAction('{!$RemoteAction.MyController.filterMyData}',
colIndx, txt,
function(result,event){
gridData =[];
$(result).each(function (i) {
gridData.push( [result[i].Id,
result[i].Name ? result[i].Name : '',
result[i].Title__c ? result[i].Title__c : '']);
});
$myGrid.pqGrid( "option", "dataModel", { data: gridData} );
$myGrid.pqGrid("refresh");
}
);
}
}
</script>
$myGrid = $("#myGrid_array").pqGrid( "option", "dataModel", { data: myGridData, paging: 'remote'} );
NEW:
var datamodel ={
location: "local",
sorting: "local",
paging: "local",
curPage: 1,
data: myGridData,
rPP: 10,
rPPOptions: [1, 10, 20, 30, 40, 50, 100, 500]
}
$myGrid = $("#myGrid_array").pqGrid( "option", "dataModel", datamodel);