행을 삭제하고 동일한 구성원 ID를 가진 행을 검색 한 후 변경하거나 다시로드 할 표를 원합니다. 이를 위해 필터를 추가합니다. 다시 모든 행을 삭제 한 후 필터를 사용하여 콜백 저장합니다. 내 저장 필터가 잘 표시되지만 표시 할 수 없습니다 ...... 이전 표시를 유지합니다 ......필터링 중에 저장소를 다시로드 한 후에도 눈금이 변경되지 않습니다.
Ext.define('${pkgName}.v02x001001.SV02X00100101' , {
extend : 'Ext.grid.Panel',
alias : 'widget.sv02x00100101',
id : 'sv02x00100101',
border : true,
modal : true,
height : 300,
width : 455,
viewConfig: {
stripeRows : true,
forceFit : true,
emptyText : 'No Records to display',
listeners : {
viewready : function(v) {
var store = Ext.data.StoreManager.get('S02X001001');
store = !store ? Ext.create("S02X001001") : store;
var value = Ext.getCmp('member-sv02x00100104').getValue(),
filters = new Array();
store.clearFilter();
store.filter('member', value);
filters.push({
property : 'member',
value : value
});
store.loadPage(1, {
filters : filters
});
}
}
},
initComponent: function() {
this.store = 'S02X001001';
this.tbar= Ext.create('Ext.ux.StatusBar', {
topBorder : false,
statusAlign : 'right',
items : [{
xtype :'button',
text : 'ADD',
icon : "${resource(dir: 'images', file: 'ADD01003.png')}",
listeners : {
click : this.onNewAddress
}
},'-']
});
this.columns = [
{
text : 'Address Line 1',
dataIndex : 'addressline1',
sortable : false,
flex : 1
},{
text : 'Address Line 2',
dataIndex : 'addressline2',
sortable : false,
width : 170
},{
menuDisabled : true,
sortable : false,
id : 'deletee',
xtype : 'actioncolumn',
width : 22,
items : [{
icon : "${resource(dir: 'images', file: 'DEL01005.png')}",
tooltip : 'Delete This?',
scope : this,
handler : function(grid, rowIdx, colIdx) {
var record = grid.getStore().getAt(rowIdx);
var conId = record.data.id
this.onDeleteClick(conId);
}
}]
}];
this.callParent(arguments);
},
onNewAddress: function(btn, e, eOpts){
var view=Ext.widget('sv02x00100102');
view.show();
var a = Ext.getCmp('member-sv02x00100104').getValue();
Ext.getCmp('member-sv02x00100102').setValue(a);
},
onDeleteClick:function(conId){
Ext.MessageBox.show({
title : 'Delete',
msg : 'Really want to delete ?',
icon : Ext.Msg.WARNING,
buttons : Ext.MessageBox.YESNO,
buttonText :{
yes: "Delete",
no : "No"
},
scope : this,
animateTarget : 'deletee',
fn: function(btn, dbQty){
if(btn == 'yes'){
var registration = Ext.create('${appName}.model.M02X001001',{
id : conId
});
var store = this.getStore();
registration.destroy({
scope : this,
success : function(model, operation) {
if(model != null){
var store = Ext.data.StoreManager.get('S02X001001');
store = !store ? Ext.create("S02X001001") : store;
var value = Ext.getCmp('member-sv02x00100104').getValue(),
filters = new Array();
store.clearFilter();
store.filter('member', value);
filters.push({
property : 'member',
value : value
});
store.loadPage(1, {
filters : filters
});
}
},
failure: function(){
console.log('Unable to delete');
}
});
}
}
});
}
}); 여기
내 가게가 가능 상대적인 행의 나머지 부분을 검색하는 방법을........ ..........
Ext.define('${pkgName}.S02X001001', {
extend : 'Ext.data.Store',
model : '${appName}.model.M02X001001',
idProperty: 'id',
autoLoad : true,
autoSync : true,
filterParam: 'query',
remoteSort: true,
proxy : {
type : 'ajax',
noCache : false,
limitParam: 'limit',
startParam: 'start',
url : '${createLink(controller:'C02x001001', action: 'store')}',
reader:{
type : 'json',
root : 'data',
totalProperty : 'total',
successProperty : 'success',
messageProperty : 'message',
implicitIncludes: true
},
simpleSortMode : true
},
sorters: [{
property: 'id',
direction: 'asc'
}]
});
그리드는 저장소에 바인딩되며 모든 이벤트에서 반응합니다. 상점에 모든 레코드가 있지만 그리드에 표시되지 않는다고 말할 때 의미가 없습니다 ... 실제로 말하는 상점 인스턴스가 실제로 눈금에 묶여 있습니까? 레코드가 상점에로드되었는지 정말로 확신합니까? – sra
예, 그렇습니다. 필터링 된 데이터를 검색하는 격자 패널이 있습니다. 하지만 데이터를 삭제하면 그리드의 스토어를 삭제 기능의 성공으로 다시 호출해도 그리드를 변경할 수 없습니다. 나는 상점에서 필터링 된 데이터를 발견했다 (Firebug). 내 버그는 무엇입니까 ..... –
그리드는 여기의 일종의 표현 레이어 일뿐입니다. 데이터는 저장소에 있습니다. 저장소가 변경되면 그리드가 바인딩으로 변경됩니다. 그렇게하지 않으면 상점에서 응답을 빨간색으로 표시 할 수있는 경우 작업하는 상점의 참조를 다시 확인해야합니다. 바인딩 때문에 상점에서 이벤트를 일시 중단하는 경우 그리드가 반응 할 수 없습니다. – sra