def list
#-------
# gets params[:start] from account-grid.js
start = (params[:start] || 0).to_i
# gets params[:limit] from account-grid.js
#size variable has count per page
size = (params[:limit] || 20).to_i
# page variable gives current page number
page = ((start/size).to_i) + 1
@accounts = Account.find(:all,:page => {:current => page,:size => 5})
respond_to do |format|
#render html format
format.html
#render xml format
format.xml
end
end
//This function is to list Accounts in the grid
Ext.onReady(function(){
// create the Data Store
var accountStore = new Ext.data.Store({
// load using HTTP
proxy: new Ext.data.HttpProxy({
url: ''/accounts/list?format=xml'',
method: ''GET''
}),
// the return will be XML, so lets set up a reader
reader: new Ext.data.XmlReader({
// records will have a "Person" tag
record: ''Account'',
id: ''id'',
totalRecords: ''TotalResult''
}, [
// set up the fields mapping into the xml doc
// The first needs mapping, the others are very basic
''id'',''CompanyName''
])
});
// create the PagingBar for Pagination
var pagingBar = new Ext.PagingToolbar({
pageSize: 5,
store: accountStore,
displayInfo: true,
displayMsg: ''Displaying topics {0} - {1} of {2}'',
emptyMsg: "No topics to display"
});
// create the grid
var accountGrid = new Ext.grid.GridPanel({
store: accountStore,
columns: [
{header: "SNo", width: 35, dataIndex:
''id'', sortable: true},
{header: "Company Name", width: 180, dataIndex:
''CompanyName'', sortable: true}
],
// customize view config
viewConfig: {
forceFit:true,
enableRowBody:true,
showPreview:true
},
renderTo:''account_grid'',
width:600,
height:200,
buttons: [{
text: ''Add Account'',
handler: function() {
window.location.href = ''/accounts/create'';
}
}],
// paging bar on the bottom
bbar: pagingBar
});
accountStore.load({params:{start: 0, limit: 5}});
accountGrid.render();
});
when i excecute the above code it correctly loads the grid..
could u pls help me to understand what happen in the above code.
which goes first whether controller code or js...
Thanks in advance
--
Posted via http://www.ruby-forum.com/.
2009/9/23 Newb Newb <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>:> > def list > #------- > > # gets params[:start] from account-grid.js > start = (params[:start] || 0).to_i > > # gets params[:limit] from account-grid.js > #size variable has count per page > size = (params[:limit] || 20).to_i > > # page variable gives current page number > page = ((start/size).to_i) + 1 > > @accounts = Account.find(:all,:page => {:current => page,:size => 5}) > > respond_to do |format| > > #render html format > format.html > > #render xml format > format.xml > > end > > > end > > //This function is to list Accounts in the grid > > Ext.onReady(function(){ > > // create the Data Store > var accountStore = new Ext.data.Store({ > > // load using HTTP > proxy: new Ext.data.HttpProxy({ > > url: ''/accounts/list?format=xml'', > method: ''GET'' > }), > > > > // the return will be XML, so lets set up a reader > reader: new Ext.data.XmlReader({ > // records will have a "Person" tag > record: ''Account'', > id: ''id'', > totalRecords: ''TotalResult'' > }, [ > // set up the fields mapping into the xml doc > // The first needs mapping, the others are very basic > ''id'',''CompanyName'' > ]) > }); > > // create the PagingBar for Pagination > var pagingBar = new Ext.PagingToolbar({ > pageSize: 5, > store: accountStore, > displayInfo: true, > displayMsg: ''Displaying topics {0} - {1} of {2}'', > emptyMsg: "No topics to display" > > > }); > > // create the grid > var accountGrid = new Ext.grid.GridPanel({ > store: accountStore, > columns: [ > {header: "SNo", width: 35, dataIndex: ''id'', sortable: true}, > {header: "Company Name", width: 180, dataIndex: > ''CompanyName'', sortable: true} > ], > > // customize view config > viewConfig: { > forceFit:true, > enableRowBody:true, > showPreview:true > > }, > > renderTo:''account_grid'', > width:600, > height:200, > buttons: [{ > text: ''Add Account'', > handler: function() { > window.location.href = ''/accounts/create''; > } > }], > // paging bar on the bottom > bbar: pagingBar > }); > > accountStore.load({params:{start: 0, limit: 5}}); > accountGrid.render(); > > > > > > > > }); > > when i excecute the above code it correctly loads the grid.. > could u pls help me to understand what happen in the above code. > which goes first whether controller code or js...Have you had a look at the rails guides at http://guides.rubyonrails.org/ ? Particularly the getting started guide. The railscasts are good also. Colin