Я использую Dojo Gridx в моем проекте. Это имена моих колонок id, field1, field2, active statusЗначения столбцов не изменены после редактирования coulmn в GRIDX
У меня есть задание, при активном статусе активного столбца необходимо изменить значение активного состояния, значок столбца и поле1, значения поля2.
Например: если активным значением состояния является «Y», когда я нажимаю, то я хочу изменить значение поля1, поле2 и изменить значок активного состояния. Я могу достичь этой функциональности с помощью приведенного ниже кода.
Но здесь проблема в том, что поле1 редактируется, если я нажму активную колонку состояния без редактирования поля1, указанный ниже код работает нормально. После того, как я отредактировал, если я нажму активный столбец статуса ниже указанного кода, он не будет работать. Но значения меняются на стороне сервера, а сторона БД работает нормально. Я не знаю, в чем проблема, если кто-нибудь заставит меня понять. Я приложил свой код для справки.
require (["dojo/request", "dojo/i18n! RW/nls/appResources"], функция (запрос, расслоение) { request.get ("/ RW/rest /" + that.resourcePath, {handleAs: «J»}..), а затем ( функции (J) {
that.JGloData=J;
var dataToPopulate = {
identifier: 'id',
items: that.JGloData
};
review.app.defectClassAE.partStore = new dojo.data.ItemFileWriteStore({
data : dataToPopulate
});
review.app.defectClassAE.partStructure = [
{
field : 'id',
name : that.J.defect_id,
width : '5%',
dataType : 'string',
alwaysEditing : false,
editable : false,
},
{
field : 'field1',
name : that.J.defect_class,
width : '25%',
dataType : 'string',
alwaysEditing : false,
editable : true,
editor : dijit.form.Textarea,
},
{
field : 'field2',
name : that.J.defect_activate_date,
width : '18%',
dataType : 'string',
alwaysEditing : false,
editable : false,
},
{
field : 'field3',
name : that.J.defect_deactivate_date,
width : '18%',
dataType : 'string',
alwaysEditing : false,
editable : false,
},
{ field: 'activeStatus', name: bundle.RT_QLIST_ACTIVATE, filterable: false, width: '20%' ,editable : false,
widgetsInCell: true,
decorator: function(){
return "<button data-dojo-type='dijit/form/Button' data-dojo-attach-point='btnactivate' data-dojo-props='showLabel: false' type='button'>Activate</button>";
//return "<div data-dojo-type='dijit.form.Button' data-dojo-attach-point='btnactivate'></div>";
},
setCellValue: function(gridData, storeData, cellWidget){
if(gridData == "Y"){
cellWidget.btnactivate.set('iconClass', "rtIcondeactivateReviewType");
}else{
cellWidget.btnactivate.set('iconClass', "rtIconactivateReviewType");
}
(function(cellWidget){
dojo.connect(cellWidget.btnactivate,"onClick",function(){
//var that = this;
var rawData = cellWidget.cell.row.rawData();
var cell = cellWidget.cell;
var DI="";
var activeStatus="";
DI=rawData.DI;
activeStatus=rawData.activeStatus;
if(DI!=null && DI!=""){
require(["dojo/request","dojo/i18n!RW/nls/appResources"], function(request,bundle){
request.get("/RW/rest/"+that.resourcePath+"/defectActOrDea/"+DI,{handleAs : 'J'}).then(
function(J){
if(activeStatus=='Y' || activeStatus==""){
var deactvalues = {
'activeStatus' : 'N',
'field3':that.getTodayDate(),
'field2':""
};
cell.row.setRawData(deactvalues);
that.set('iconClass', "rtIcondeactivateReviewType");
}
else{
var actvalues = {
'activeStatus' : 'Y',
'field2':that.getTodayDate(),
'field3':""
};
cell.row.setRawData(actvalues);
that.set('iconClass', "rtIconactivateReviewType")
}
},
function(error){
showErrorNotification(that.J.defect_act_deact_error);
}
);
});
}
});
})(cellWidget);
}
},
];
Пожалуйста, помогите ... – KSK