我有两个网格,一个是主网格,另一个是主网格的子网格。单击主网格的工具栏按钮后,我将打开子网格并显示可用数据。用户选择了行,然后单击“添加”。
数据被添加到主网格中,但是显示键而不是值(网格中的几列是下拉列表)
我已添加图片以供参考https://imgur.com/a/iSebASD 让我解释一下我的编码方式。
1。首先,在页面加载时,主网格和子网格的dataAdapter为空。 2.点击“添加项目”按钮后,我会触发axios调用并获取类似的数据
getChildGridData : function () {
// alert();
var _this = this;
if(_this.childGridData.length === 0){
axios
.get('/admin/forms/'+JSON.parse(_this.formData).formID+'/getAllItemMaster/listDataSource')
.then(response => {
console.log('fetching data');
for(var z = 0 ; z < _this.gridValues.length ; z++){
// i am doing this so that I can set the source of the dropdown
if(_this.gridValues[z]['columntype'] === 'dropdownlist'){
var currColumnID = _this.gridValues[z]['datafield'];
var currColumnValue = _this.gridValues[z]['datafield'].split('_')[0]+'_value';
for(var cD = 0 ; cD < response.data.length ; cD++){
// here
_this.gridValues[z].values.source.push( {
[currColumnID] : response.data[cD][currColumnID],
[currColumnValue] : response.data[cD][currColumnValue]
});
}
}
}
this.refreshDataField(_this.gridValues,response.data);
_this.childGridDataFields = _this.gridValues;
_this.childGridData = response.data;
})
;
}
}
一旦获得数据,就可以将dataAdapter设置为主网格。
refreshDataField : function(_dataArray,x){
console.log('asdfasdf')
this.dataAdapter = new jqx.dataAdapter({
datatype: 'array',
datafields : _dataArray,
localdata : [x]
});
// this.dataAdapter.dataBind();
// this.$refs.mainGrid.refresh();
}
我对子网格使用相同的方法,但是它可以正常工作并显示key:正确显示,但是主网格为什么不能按预期工作?