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