Hi Peter,
Thanks for writing in. It is really not my code at all. I have taken it all
from the tutorial. I thought that people will get a better perspective if I
referred them to the tutorial. Nevertheless, I am pasting code from the
advent.js file below. ( I have made a few inconsequential changes though,
like the values in the drop down etc.)
/*
* advent.js
*/
Ext.onReady(function() {
var col_model = new Ext.grid.ColumnModel([
{
id: 'id',
header: 'ID',
dataIndex: 'id',
width: 40
},
{
id: 'name',
header: 'Name',
dataIndex: 'name',
editor: new Ext.form.TextField({
allowBlank: false,
})
},
{
id: 'occupation',
header: 'Occupation',
dataIndex: 'occupation',
width: 70,
editor: new Ext.form.ComboBox({
typeAhead: true,
triggerAction: 'all',
transform: 'occpopup',
lazyRender: true,
listClass: 'x-combo-list-small'
})
}
]);
col_model.defaultSortable = true;
var People = Ext.data.Record.create([
{ name: 'id', type: 'int'},
{ name: 'name', type: 'string'},
{ name: 'occupation', type: 'string'}
]);
var store = new Ext.data.JsonStore({
url: gridurl,
root: 'people',
fields: People
});
var grid = new Ext.grid.EditorGridPanel({
store: store,
cm: col_model,
title: 'Edit Persons',
width: 600,
height: 300,
frame: true,
autoExpandColumn: 'name',
renderTo: 'datagrid',
tbar: [
{
text: 'New Person',
handler: function() {
var p = new People({
name: 'Unnamed New Person',
occupation: 'Unknown',
});
grid.stopEditing();
store.insert( 0, p );
grid.startEditing( 0, 1 );
},
},
{
text: 'Save Changes',
handler: function() {
grid.stopEditing();
var changes = new Array();
var dirty = store.getModifiedRecords();
for ( var i = 0 ; i < dirty.length ; i++ ) {
var id = dirty[i].get( 'id' );
var fields = dirty[i].getChanges();
fields.id = dirty[i].get( 'id' );
changes.push( fields );
}
console.log( changes );
submitChanges( changes );
store.commitChanges();
},
},
{
text: 'Discard Changes',
handler: function() {
grid.stopEditing();
store.rejectChanges();
},
}
]
});
store.load();
function submitChanges( data ) {
Ext.Ajax.request({
url: posturl,
success: function() { store.reload() },
params: { changes: Ext.util.JSON.encode( data ) }
});
}
});
gridurl and posturl are defined in index.tt2 pasted below. It also contains
a link to advent.js.
[% META title = 'Advent AJAX Grid' %]
<script type = "text/javascript">
var posturl = '[% Catalyst.uri_for("/people_data_submit") %]';
var gridurl = '[% Catalyst.uri_for("/people_data") %]';
</script>
[% js_link (src = '/static/advent.js') %]
<div id = "datagrid"></div>
<select id="occpopup" style="display: none">
<option value="SBI">SBI</option>
<option value="IBS">IBS</option>
<option value="ICICI">ICICI</option>
<option value="SELF">SELF</option>
</select>
On Thu, Apr 16, 2009 at 7:41 PM, Peter Karman <[email protected]> wrote:
> jagdish eashwar wrote on 04/16/2009 05:55 AM:
> > Hi,
> >
> > I have been able to work through all of Jason Kohles' tutorial except the
> > part about saving changes back in the database. The 'New Person' and
> > 'Discard Changes' in the tool bar are working, but the 'Save Changes' is
> > not. I have checked several times for any typing mistakes that I might
> have
> > committed, but that part of the code is not working for me. I wonder if
> the
> > argument ('data') in the submitChanges function is to be substituted with
> > something more explicit by the reader. I will be glad to receive some
> help
> > and guidance.
> >
> > I forgot to mention in my earlier post that the tutorial is available at
> > http://www.catalystframework.org/calendar/2007/9.
>
> Tip: you won't get any useful help until you show us your code.
>
>
> --
> Peter Karman . [email protected] . http://peknet.com/
>
>
> _______________________________________________
> List: [email protected]
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/[email protected]/
> Dev site: http://dev.catalyst.perl.org/
>
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/