${flash.message}
<%--
--%>
YAHOO.example.DynamicData = function()
{
// Column definitions
var myColumnDefs = [
{'key': 'id','label': 'Id','sortable': true,'resizeable': true},
{'key': 'name','label': 'Name','sortable': true,'resizeable': true},
{'key': 'country','label': 'Country','sortable': true,'resizeable': true},
{'key': 'population','label': 'Population','sortable': true,'resizeable': true},
{'key': 'capital','label': 'Capital','sortable': true,'resizeable': true},
{'key': 'latitude','label': 'Latitude','sortable': true,'resizeable': true},
{'key': 'longitude','label': 'Longitude','sortable': true,'resizeable': true}
];
// Custom parser
var stringToDate = function( sData )
{
var array = sData.split( "-" );
return new Date( array[1] + " " + array[0] + ", " + array[2] );
};
// DataSource instance
var myDataSource = new YAHOO.util.DataSource( "${createLink(action: 'query.json')}?" );
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSource.responseSchema = {
resultsList: "results",
fields: [
{key:"id", parser:"number"},
{key:"name"},
{key:"country"},
{key:"population", parser:"number"},
{key:"capital"},
{key:"latitude", parser:"number"},
{key:"longitude", parser:"number"}
],
metaFields: {
totalRecords: "totalRecords" // Access to value in the server response
}
};
// DataTable configuration
var myConfigs = {
// Initial request for first page of data
initialRequest: "max=${params.max ?: 10}&offset=${params.offset ?: 0}&sort=${params.sort ?: "id"}&order=${params.order ?: "asc"}&",
// Enables dynamic server-driven data
dynamicData: true,
// Sets UI initial sort arrow
sortedBy : {key:"id", dir:YAHOO.widget.DataTable.CLASS_ASC},
// Enables pagination
paginator: new YAHOO.widget.Paginator( { rowsPerPage: ${params.max} } ),
// Change query string to match service
generateRequest: function(state) {
var query = "offset=" + state.pagination.recordOffset +
"&max=" + state.pagination.rowsPerPage +
"&sort=" + state.sortedBy.key +
"&order=" + ((state.sortedBy.dir === YAHOO.widget.DataTable.CLASS_ASC) ? "asc" : "desc");
if (this.customQueryString != null) {
query += '&' + this.customQueryString;
}
// tack on any user filters
for (filterBy in this.userFilters) {
query += '&filterBy=' + filterBy + '&filterOn=' + this.userFilters[filterBy];
}
return query;
}
};
// DataTable instance
var myDataTable = new YAHOO.widget.DataTable( "dynamicdata", myColumnDefs, myDataSource, myConfigs );
// Update totalRecords on the fly with value from server
myDataTable.handleDataReturnPayload = function( oRequest, oResponse, oPayload )
{
oPayload.totalRecords = oResponse.meta.totalRecords;
return oPayload;
}
return {
ds: myDataSource,
dt: myDataTable
};
}();