简体   繁体   中英

Hide row in Extjs grid view not work

I need to hide duplicate rows in master/detail grid. I found this fiddle http://jsfiddle.net/tPB8Z/1465/ that hides some cells based user choice, but when I applied this in my code http://jsfiddle.net/alebotello/axvhtrcL/21/ method addRowCls() from view grid, it did not work for rows. Master and detail grids shared same store, and I only want to change rows visibility in master grid, without modify store or create a new one.

In master grid listeners:

    afterrender: function (comp) {
            var st = comp.getStore();
            var arr = [];
            var i = 0;
            var view = comp.getView();
            st.each(function (record) {
//                console.log(record);
                if (arr.indexOf(record.data['idOrden']) === -1) {
                    arr.push(record.data['idOrden']);
                } else {
                    view.removeRowCls(record, 'x-grid-view');
                    view.addRowCls(record, 'oculto');
//                    console.log(view);                    
                }
                i++;
            });

css

.oculto{
    display: none;
}

Fix is very simple, change the master grid listener from 'afterrender' to 'viewready'.

For most of the Ext.view.View based Components like Grid, List developers should use viewready events instead of afterrender to perform post render DOM manipulations.

This is documented in their API Doc and Guides.

   viewready: function (comp) {
        var st = comp.getStore();
        var arr = [];
        var i = 0;
        var view = comp.getView();
        st.each(function (record) {
            debugger;
            if (arr.indexOf(record.data['idOrden']) === -1) {
                arr.push(record.data['idOrden']);
            } else {
                view.removeRowCls(record, 'x-grid-view');
                view.addRowCls(record, 'oculto');
                console.log(view);                    
            }
            i++;
        });
    }

Working example forked from above jsfiddle:- http://jsfiddle.net/chetanbh/rpbdq4ex/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM