converting to JsonStore didn't work.
I've reduced the code below.
default.html:
Code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://dev.sencha.com/deploy/ext/resources/css/ext-all.css" />
<!-- ** Javascript ** -->
<!-- ExtJS library: base/adapter -->
<script type="text/javascript" src="http://dev.sencha.com/deploy/ext/adapter/ext/ext-base.js"></script>
<!-- ExtJS library: all widgets -->
<script type="text/javascript" src="http://dev.sencha.com/deploy/ext/ext-all.js"></script>
<script src="CampusPrograms.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
var campusID = "1";
var schoolID = "1";
Ext.onReady(function() {
createCampusPrograms();
});
</script>
<script src="Scripts/CampusPrograms.js" type="text/javascript"></script>
</head>
<body>
<div id="grid-SchoolPrograms" width="300px"></div>
<br/>
<div id="grid-CampusPrograms" width="300px"></div>
</body>
</html>
CampusPrograms.js:
Code:
function createCampusPrograms() {
var readerCampusPrograms = new Ext.data.JsonReader({
totalProperty: 'total',
successProperty: 'success',
idProperty: 'ProgramID',
root: 'data',
messageProperty: 'message' // <-- New "messageProperty" meta-data
},
[
{ name: 'ProgramID' },
{ name: 'ProgramName' },
{ name: 'ProgramCode' },
{ name: 'LMSProgramCode' },
{ name: 'AreaName' },
{ name: 'CareerType' }
]
);
var readerSchoolPrograms = new Ext.data.JsonReader({
totalProperty: 'total',
successProperty: 'success',
root: 'data',
idProperty: 'ProgramID',
messageProperty: 'message' // <-- New "messageProperty" meta-data
},
[
{ name: 'ProgramID' },
{ name: 'ProgramName' },
{ name: 'ProgramCode' }
]
);
var storeSchoolPrograms = new Ext.data.Store({
id: 'storeSchoolPrograms',
proxy: new Ext.data.HttpProxy({ url: 'programs.asp' }),
baseParams: {
CampusID: campusID,
SchoolID: schoolID,
mode: 'avail'
},
pruneModifiedRecords: true,
autoLoad: true,
listeners: {
beforeLoad: function() {
Ext.MessageBox.wait('Loading Data. Please wait...');
},
load: function() {
Ext.MessageBox.hide();
}
},
remove: function() {
alert('item removed');
},
reader: readerSchoolPrograms
});
var storeCampusPrograms = new Ext.data.Store({
id: 'storeCampusPrograms',
proxy: new Ext.data.HttpProxy({ url: 'programs2.asp' }),
baseParams: {
CampusID: campusID
},
autoLoad: true,
listeners: {
beforeLoad: function() {
Ext.MessageBox.wait('Loading Data. Please wait...');
},
load: function() {
Ext.MessageBox.hide();
},
update: function() {
}
},
remove: function() {
alert('removed');
},
exception: function() {
},
reader: readerCampusPrograms
});
var CampusProgramsColumns = [
{ header: "ID", width: 50, sortable: true, dataIndex: 'ProgramID' },
{ header: "Program Name", width: 150, sortable: true, dataIndex: 'ProgramName' },
{ header: "Code", width: 50, sortable: true, dataIndex: 'ProgramCode' },
{ header: "", width: 5, align: 'right', dataIndex: '' }
];
var gridCampusPrograms = new Ext.grid.GridPanel({
id: 'gridCampusPrograms',
loadMask: true,
layout: 'fit',
autoHeight: true,
width:200,
forceFit: true,
store: storeCampusPrograms,
columns: CampusProgramsColumns,
enableColumnResize: false,
stripeRows: true,
title: "Campus Programs",
viewConfig: {
forceFit: false,
scrollOffset: 0,
emptyText: 'No rows to display'
}
});
var gridSchoolPrograms = new Ext.grid.GridPanel({
id: 'gridSchoolPrograms',
loadMask: true,
layout: 'fit',
width: 200,
autoHeight: true,
forceFit: true,
store: storeSchoolPrograms,
sm: new Ext.grid.RowSelectionModel(),
columns: CampusProgramsColumns,
enableColumnResize: false,
stripeRows: true,
title: "Available School Programs",
viewConfig: {
forceFit: true,
scrollOffset: 0,
emptyText: 'No rows to display'
},
listeners: {
rowdblclick: function(g, index, ev) {
var rec = g.store.getAt(index);
g.store.removeAt(index);
//g.store.removeAll(); -- this works
//Ext.getCmp('gridSchoolPrograms').getStore().remove(rec);
Ext.getCmp('gridCampusPrograms').getStore().add(rec);
}
}
});
gridSchoolPrograms.getStore().load();
document.getElementById('grid-SchoolPrograms').innerHTML = "";
gridSchoolPrograms.render('grid-SchoolPrograms');
gridCampusPrograms.getStore().load();
document.getElementById('grid-CampusPrograms').innerHTML = "";
gridCampusPrograms.render('grid-CampusPrograms');
}
programs.asp:
Code:
{"success":"true","total":"6","data":[{"SchoolName":"NHI","ProgramID":"3","SchoolID":"5","ProgramName":"Massage 3","DegreeTypeID":null,"isActive":null,"ProgramCode":"MT3","CampusID":"115","LMSProgramCode":"MT","AreaID":"1","CareerTypeID":null,"AreaName":"Art & Design","CareerType":"Animation","_id":3},{"SchoolName":"NHI","ProgramID":"4","SchoolID":"5","ProgramName":"Massage 4","DegreeTypeID":null,"isActive":null,"ProgramCode":"MT4","CampusID":"116","LMSProgramCode":"MT","AreaID":"1","CareerTypeID":null,"AreaName":"Art & Design","CareerType":"Animation","_id":4},{"SchoolName":"NHI","ProgramID":"5","SchoolID":"5","ProgramName":"Massage 5","DegreeTypeID":null,"isActive":null,"ProgramCode":"MT5","CampusID":"117","LMSProgramCode":"MT","AreaID":"1","CareerTypeID":null,"AreaName":"Art & Design","CareerType":"Animation","_id":5},{"SchoolName":"NHI","ProgramID":"2","SchoolID":"5","ProgramName":"Massage Therapy 2","DegreeTypeID":null,"isActive":null,"ProgramCode":"MT2","CampusID":"114","LMSProgramCode":"MT","AreaID":"1","CareerTypeID":null,"AreaName":"Art & Design","CareerType":"Animation","_id":2},{"SchoolName":"NHI","ProgramID":"7","SchoolID":"5","ProgramName":"Program 3","DegreeTypeID":null,"isActive":null,"ProgramCode":"P3","CampusID":"","LMSProgramCode":"P3","AreaID":"3","CareerTypeID":null,"AreaName":"Criminal Justice","CareerType":"Fine and Studio Art","_id":7},{"SchoolName":"NHI","ProgramID":"6","SchoolID":"5","ProgramName":"Program2","DegreeTypeID":null,"isActive":null,"ProgramCode":"P2","CampusID":"","LMSProgramCode":"P2","AreaID":"2","CareerTypeID":null,"AreaName":"Business","CareerType":"Fashion","_id":6}]}
I must be missing something simple.
All I want to do is move records from one grid to another.