Skip to main content

ExtJS4 - Conditional Row expander for remove/hide + icon

Follow below steps to apply Conditional Row expander - only to remove/hide (+) icon. with out disturbing default behaviour of row expander

Step1:
Declare this css in your JSP
/* style classs to hide Row expander icon (+) - conditional */
.hide-row-expander .x-grid-row-expander {
    visibility: hidden;
}

Step2:
// Declare row expander plug-in in your Grid panel

plugins: [{
         ptype: 'rowexpander',    // TODO - uncomment this plugin - to have default behaviour of row expander
            selectRowOnExpand : true,   // true to select a row when clicking on the expander icon
            expandOnDblClick: false,     // true to toggle a row between expanded/collapsed when double clicked
            expandOnEnter : false,
            rowBodyTpl: new Ext.XTemplate()
        }]


Step3:
Apply style class in grid panel

 viewConfig: {
        stripeRows: true,
        // This renderer to apply conditional css on each grid row based specific column value (dtcc status)
        getRowClass: function (record, rowIndex, rowParams, store) {
                var str = record.get('name');
                
                if(str == ' '){  // if name column is blank
                return 'hide-row-expander';
                }
            }
}//end of viewconfig




Comments

Popular posts from this blog

Ext4 Apply Store Filtering

In extjs4.1: There are many way for store filtering . Some of code i give here Filtering by single field: store . filter ( 'eyeColor' , 'Brown' );   Alternatively, if filters are configured with an  id , then existing filters store may be  replaced by new filters having the same  id . Filtering by single field: store . filter ( "email" , /\.com$/ );   Using multiple filters: store . filter ([ { property : "email" , value : /\.com$/ }, { filterFn : function ( item ) { return item . get ( "age" ) > 10 ; }} ]);   Using  Ext.util.Filter  instances instead of config objects (note that we need to specify the root config option in this case): store . filter ([ Ext . create ( ' Ext.util.Filter ' , {   property : "email" , value : /\.com$/ , root : 'data' }),   Ext . create ( ' Ext.util.Filter ' , {   filterFn : function ( item ) {   return item . get ( &

ExtJS - Grid panel features

What can we do with ExtJS GridPanel? I have to develop a lot of applications in my web app and I see that grid component of ExtJS may fit in. However, I am not aware of what all things I can do with the - off the shelf available framework pieces - available plug-ins in the marketplace and - custom development through my own developers This is a typical question that we hear from the business users who wants to design an application by keeping the framework’s capability in perspective. In this article I have tried to put the list of stuff you can do with grid and hopefully that shall enable you to take advantage of the beauty of ExtJS. Pre-requisites This article assumes that you are familiar with basics of ExtJS What are the available options? In this section I will be taking you through some of the commonly seen usage of ExtJS grid panel. While covering all the capabilities of grid may not be possible, I am sure it will be helpful for the business users who want to

EXTJS - Way to get a reference to the viewport from any controller

An easy way to get a reference to the viewport from any controller Here's an easy way to get a reference to your viewport from any controller: Ext.application({ launch: function(){ this.viewport = Ext.ComponentQuery.query('viewport')[0]; this.centerRegion = this.viewport.down('[region=center]'); } }); then, inside say, a controller, you can call this: this.application.viewport to get a reference to the viewport.