パネルに複数のグリッドがあります。ベース グリッドにはデータが含まれており、相互にドラッグ アンド ドロップできます。パネル内のすべてのグリッドは、相互にドラッグ アンド ドロップできる必要があります。これはクロムでは完全に機能しますが、Firefox、IE、または Safari では機能しません。
IE、FF、および Safari では、データを含むグリッドは問題なく相互にドラッグ アンド ドロップされます。それらは空のグリッドの間にありません。空のグリッドにデータを追加しようとしましたが、それは問題ではありませんでした。Extjsで使用するとFirebugもエラーになるため、発生するバグは別の開発ツールからのものです。これらのブラウザをすべて再インストールしましたが、それも答えではありません。私は立ち往生しています...
編集Chrome でドラッグドロップ グループの viewconfig が設定されていることがわかりましたが、他のブラウザでは設定されていません
これは、データを含む私のベース グリッドです。
var rround = "panel-game-"+round;
var ss = Ext.create('Ext.grid.Panel', {
stateful: true,
id: "panel-game-"+round,
stateId: 'stateGrid',
autoScroll: false,
store: store,
columns: [
{
text : 'Teams',
flex : 1,
sortable : true,
dataIndex: 'team_name'
}
],
height: 100,
width: 150,
title: 'Game ' + round,
viewConfig: {
stripeRows: true,
plugins: {
ptype: 'gridviewdragdrop',
dragGroup: [groups],
dropGroup: [groups]
},
listeners: {
drop: function(node, data, dropRec, dropPosition,record,store) {
var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
var data = this.store.data.items;
var sdata = new Array();
data.each(function(e){
var bleh = {team_id: e.data.team_id, team_name:e.data.team_name};
sdata.push(bleh);
})
removeDupe(sdata,this.store);
}
}
}
});
これは私の空のグリッドで、ドロップを受け入れ、データがある場合はドラッグする必要があります。
var rCell = Ext.create('Ext.grid.Panel', {
stateful: true,
id: "panel-game-"+i+'-'+a,
stateId: 'stateGrid',
autoScroll: false,
store: rCellStore,
columns: [
{
text : 'Teams',
flex : 1,
sortable : true,
dataIndex: 'team_name'
}
],
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop',
dragGroup: [groups],
dropGroup: [groups]
},
listeners: {
beforedrop: function(node,data,overModel,dropPosition,eOpts){
console.log(node);
},
drop: function(node, data, dropRec, dropPosition, record) {
console.log("drop");
var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('title') : ' on empty view';
var f = node.id.replace('-body','');
var newval = data.records[0].data;
if(f != undefined && f != ''){
var fstore = Ext.getCmp(f).getStore();
fstore.add(newval);
}
var data = this.store.data.items;
var sdata = new Array();
data.each(function(e){
var bleh = {team_id: e.data.team_id, team_name:e.data.team_name};
sdata.push(bleh);
})
removeDupe(sdata,this.store);
}
}
},
height: 100,
width: 150,
title: 'Game ',
viewConfig: {
stripeRows: true
}
});
何かをドラッグしようとすると、利用可能なドロップゾーンが表示されません。それはそうかもしれませんが、それを修正する方法がわかりません。