I have a ListGrid and a DynamicForm both tied to the same Datasource:
When the Form is saved (saveData() is called) , the grid refreshes instead of just updating the single record. What circumstanses would cause this to occur? The update call returns a single registration record in XML format.
Thanks in advance,
Paul
Code:
isc.DataSource.create({
ID:"registrationsDS",
showPrompt: false,
dataFormat: "xml",
dataURL:"/browse/isotest/Registrations.ashx",
recordXPath : "//user",
fields:[
{ name : "userid", title:"UserId"},
{ name : "registrationDate", title:"Reg Date", width: 120},
{ name : "namefirst", title:"First", width: 150 },
{ name : "namemiddle", title:"Middle", width: 75},
{ name : "namelast", title:"Last", width: 150},
{ name : "email", title:"Email", width: 220},
{ name : "company", title:"Company", hidden: companyHidden},
{ name : "letters", title:"Letters", hidden: lettersHidden},
{ name : "salesrepid", title:"Sales Rep Id", hidden: true},
{ name : "salesrep", title:"Sales Rep", hidden: salesRepHidden},
{ name : "comments", title:"Comment", hidden: true}
],
transformRequest : function (dsRequest) {return RequestFields(dsRequest, "registrations");},
transformResponse: function (dsResponse,dsRequest,xmlData) {return ResponseFields(dsResponse,dsRequest,xmlData, "users");}
});
isc.DynamicForm.create({
ID:"RegistrationEditForm",
useAllDataSourceFields:true,
dataSource: "registrationsDS",
fields:[
{ name : "email", title:"Email", width : 200},
{ name : "phone", title:"Phone", width : 200},
{ name : "namefirst", title:"First", width : 200 },
{ name : "company", title:"Company", width : 200},
{ name : "namelast", title:"Last", width : 200},
{ type : "textarea", name : "letters", title:"Letters", height: 50, width : 200, rowSpan: 2},
{ name : "addressone", title:"Address 1", width : 200},
{ name : "addresstwo", title:"Address 2", width : 200},
{ type : "textarea", name : "comments", title:"Comments", width : 200, rowSpan: 4},
{ name : "city", title:"City", width : 200},
{ name : "state", title:"state", width : 200},
{ name : "zip", title:"Zip", width : 200},
{name:"savebtn", editorType:"button", align:"center",
width:75, title:"Save", click:"RegistrationEditForm.saveData()", startRow:true, endRow:false},
{name:"activatebtn", editorType:"button", align:"center",
width:75, title:"Activate", click:"ActivateFromEditor()", startRow:false, endRow:false},
{name:"deleteRegbtn", editorType:"button", align:"center",
width:75, title:"Delete", click:"", startRow:false, endRow:false},
{name:"regAssignGroupsbtn", editorType:"button", align:"center",
width:150, title:"Assign Usergroups", click:"", startRow:false, endRow:false}
],
width:"100%",
numCols:4,
colWidths:[75,75,75,75],
margin:5,
overflow: "auto",
cellPadding:5,
autoFocus:false,
clearDetails : function () {
regId = 0;
RegistrationEditForm.editNewRecord();
UsergroupsForRegList.data.invalidateCache();
UsergroupsForRegList.fetchData({ ts : isc.timeStamp() });
}
});
isc.ListGrid.create({
ID: "registrationList",
alternateRecordStyles:true,
showAllRecords:false,
dataSource: "registrationsDS",
dataPageSize: 10,
autoFetchData: true,
drawAheadRatio: 1,
showFilterEditor: false,
cellContextClick:"return registrationListMenu.showContextMenu()",
recordClick:"this.updateDetails()",
canEdit:true,
modalEditing:true,
cellChanged:"this.updateDetails()",
updateDetails : function () {
var record = this.getSelectedRecord();
if (record == null) return RegistrationEditForm.clearDetails();
if(registrationList.getSelection().getLength() == 1){
RegistrationEditForm.editRecord(record);
regId = record.userid;
UsergroupsForRegList.data.invalidateCache();
UsergroupsForRegList.fetchData({ ts : isc.timeStamp() });
RegistrationEditForm.disabled = false;
}
else {
regId = 0;
UsergroupsForRegList.data.invalidateCache();
UsergroupsForRegList.fetchData({ ts : isc.timeStamp() });
RegistrationEditForm.clearDetails();
RegistrationEditForm.disabled = true;
}
}
});
function ResponseFields(dsResponse,dsRequest,xmlData, rootName){
if (dsRequest.operationType == "fetch") {
if( xmlData ) {
dsResponse.totalRows = isc.XMLTools.selectNumber(xmlData, "//" + rootName + "/@totalrecords");
dsResponse.startRow = isc.XMLTools.selectNumber(xmlData, "//" + rootName + "/@startRow");
dsResponse.endRow = isc.XMLTools.selectNumber(xmlData, "//" + rootName + "/@endRow");
dsResponse.sortBy = isc.XMLTools.selectNumber(xmlData, "//" + rootName + "/@sortBy");
}
}
return dsResponse;
}
function RequestFields(dsRequest, methodObj, addParms){
if (dsRequest.operationType == "update") {
var params = {
startRow : dsRequest.startRow,
endRow : dsRequest.endRow,
method : "update_" + methodObj,
sortBy: (dsRequest.sortBy == 'undefined') ? "" : dsRequest.sortBy,
global: filterFieldVal
};
return isc.addProperties({}, dsRequest.data, params);
}
if (dsRequest.operationType == "fetch") {
var params = {
startRow : dsRequest.startRow,
endRow : dsRequest.endRow,
method : "fetch_" + methodObj,
sortBy: (dsRequest.sortBy == 'undefined') ? "" : dsRequest.sortBy,
global: filterFieldVal
};
return isc.addProperties({}, dsRequest.data, params);
}
}
Thanks in advance,
Paul
Comment