1. #31
    Ext JS Premium Member prophet's Avatar
    Join Date
    Mar 2007
    Location
    Greenwich, CT
    Posts
    187
    Vote Rating
    0
    prophet is on a distinguished road

      0  

    Default


    Great! Thank you!
    Brad Baumann

  2. #32
    Ext JS Premium Member pavanextjs's Avatar
    Join Date
    Jul 2008
    Posts
    118
    Vote Rating
    2
    pavanextjs is on a distinguished road

      0  

    Default


    Hi mrusinak,

    The solution looks perfect. I did the destroy part in my application, but unable to figure out the rowremoved & rowupdated part. I will try that now.

    Thank you so much life saver.

  3. #33
    Ext User
    Join Date
    Jun 2007
    Posts
    8
    Vote Rating
    0
    walker_cn is on a distinguished road

      0  

    Default


    great Plug-In, Thanks for sharing.

    But there is a problem. I test in your demo, For any row, when the expander is in expanded state, and i try to click the column title, the grid sort data, and the expander panel just disappears and will not be there anymore.

    Sorry for my english, you can test your demo:
    1. click a row, to expand the expander panel
    2. click column title to sort
    3. click same row, but the expander panel never appear

  4. #34
    Sencha User
    Join Date
    Aug 2009
    Posts
    56
    Vote Rating
    0
    piccard is on a distinguished road

      0  

    Default


    Hello,
    great extension and a great bug-fix. thanx a lot ;-)
    .. but I recognized, that it's not possible to render any form-buttons inside the demo-tab.
    anybody an idea???

  5. #35
    Ext JS Premium Member pavanextjs's Avatar
    Join Date
    Jul 2008
    Posts
    118
    Vote Rating
    2
    pavanextjs is on a distinguished road

      0  

    Default


    walker_cn,

    The fix suggested by mrusinak above will fix this issue. Please refer to his code snippet above.

    Thanks,
    Pavan.

  6. #36
    Ext JS Premium Member pavanextjs's Avatar
    Join Date
    Jul 2008
    Posts
    118
    Vote Rating
    2
    pavanextjs is on a distinguished road

      0  

    Default


    piccard,

    We can insert any ExtJS Components inside the panel. I have a Tree, List View and button in my expander panel.
    Attached Images

  7. #37
    Sencha User
    Join Date
    Aug 2009
    Posts
    56
    Vote Rating
    0
    piccard is on a distinguished road

      0  

    Default


    Hello pavanextjs,
    that's sounds good. I also took the demo of the author and put a form inside, but it's the same.
    Even inside the demo the buttons are not rendered.
    If u know a workaround or u see an error by myself, please inform me.
    Have a look.
    PHP Code:
    Ext.onReady(function(){

            
    Ext.QuickTips.init();

            var 
    xg Ext.grid;

            var 
    expander = new Ext.ux.grid.RowPanelExpander({
                    
    createExpandingRowPanelItems: function(recordrowIndex){
                            var 
    panelItems = [
                                    new 
    Ext.TabPanel({
                                            
    plaintrue,
                                            
    activeTab0,
                                            
    defaults: {
                                                    
    autoHeighttrue
                                            
    },
                                            
    recordrecord,
                                            
    items:[
                                                    {
                                                            
    title:'Info1',
                                                            
    html'<div id=\'aaa\'></div>',
                                                            
    listeners: {
                                                                    
    activate: function(panel) {
                                                                                    var 
    chartForm = new Ext.FormPanel({
                                                                                            
    //renderTo: 'chartFormDiv_'+record.data.volume,
                                                                                            
    id'chartForm',
                                                                                            
    labelWidth125,
                                                                                            
    //bodyBorder: false,
                                                                                            //border: false,
                                                                                            
    frametrue,
                                                                                            
    title'Date Range',
                                                                                            
    bodyStyle:'padding:5px 5px 0; border: none'// here we need border 0px, otherwise we get a bodyborder of 1px (bodyborder: false doesn't work with frame: true
                                                                                            
    width330,
                                                                                            
    //defaultType: 'datefield',
                                                                                            
    items: [{
                                                                                                
    xtype:'fieldset',
                                                                                                
    title'Phone Number',
                                                                                                
    //checkboxToggle:true,
                                                                                                
    collapsibletrue,
                                                                                                
    autoHeight:true,
                                                                                                
    defaults: {width210},
                                                                                                
    defaultType'textfield',
                                                                                                
    items :[{
                                                                                                       
    fieldLabel'Home',
                                                                                                        
    name'home',
                                                                                                        
    value'(888) 555-1212'
                                                                                                    
    },{
                                                                                                        
    fieldLabel'Business',
                                                                                                        
    name'business',
                                                                                                        
    emptyText'blah blah blah',
                                                                                                    },{
                                                                                                        
    fieldLabel'Mobile',
                                                                                                        
    name'mobile'
                                                                                                    
    },{
                                                                                                        
    fieldLabel'Fax',
                                                                                                        
    name'fax'
                                                                                                    
    }
                                                                                                ]

                                                                                             }],

                                                                                             
    buttons: [{
                                                                                                    
    text'Save',
                                                                                                    
    id'kashdk'
                                                                                                
    },{
                                                                                                    
    text'Cancel',
                                                                                                    
    id'aopsduah'
                                                                                             
    }]
                                                                                    });
                                                                                   
    chartForm.render('aaa');
                                                                    }}
                                                    },
                                                    {
                                                            
    title:'Info2',
                                                            
    html'<h2>askdjhakjsdhakj</h2><p>Background Informations</p>'
                                                    
    }
                                            ]
                                    })
                            ];
                            return 
    panelItems;
                    }
            });
            
            
    // shared reader
            
    var reader = new Ext.data.ArrayReader({}, [
               {
    name'company'},
               {
    name'price'type'float'},
               {
    name'change'type'float'},
               {
    name'pctChange'type'float'},
               {
    name'lastChange'type'date'dateFormat'n/j h:ia'},
               {
    name'industry'},
               {
    name'desc'}
            ]);
            var 
    store = new Ext.data.GroupingStore({
                            
    readerreader,
                            
    dataxg.dummyData,
                            
    sortInfo:{field'company'direction"ASC"},
                            
    groupField:'industry'
                    
    });

            var 
    grid = new xg.GridPanel({
                    
    storestore,
                    
    columns: [
                            
    expander,
                            {
    id:'company',header"Company"width60sortabletruedataIndex'company'},
                            {
    header"Price"width20sortabletruerendererExt.util.Format.usMoneydataIndex'price'},
                            {
    header"Change"width20sortabletruedataIndex'change'rendererExt.util.Format.usMoney},
                            {
    header"Industry"width20sortabletruedataIndex'industry'},
                            {
    header"Last Updated"width20sortabletruerendererExt.util.Format.dateRenderer('m/d/Y'), dataIndex'lastChange'}
                    ],

                    
    view: new Ext.grid.GroupingView({
                            
    forceFit:true,
                            
    groupTextTpl'{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
                    
    }),

                    
    plugins: [expander],
                    
                    
    frame:true,
                    
    width700,
                    
    height450,
                    
    collapsibletrue,
                    
    animCollapsefalse,
                    
    title'Grouping Example',
                    
    iconCls'icon-grid',
                    
    fbar  : ['->', {
                            
    text:'Clear Grouping',
                            
    iconCls'icon-clear-group',
                            
    handler : function(){
                                    
    store.clearGrouping();
                            }
                    }],
                    
    renderTodocument.body
            
    });
    });
    // Array data for the grids
    Ext.grid.dummyData = [
            [
    '3m Co',71.72,0.02,0.03,'4/2 12:00am''Manufacturing'],
            [
    'Alcoa Inc',29.01,0.42,1.47,'4/1 12:00am''Manufacturing'],
            [
    'Altria Group Inc',83.81,0.28,0.34,'4/3 12:00am''Manufacturing'],
            [
    'American Express Company',52.55,0.01,0.02,'4/8 12:00am''Finance'],
            [
    'American International Group, Inc.',64.13,0.31,0.49,'4/1 12:00am''Services'],
            [
    'AT&T Inc.',31.61,-0.48,-1.54,'4/8 12:00am''Services'],
            [
    'Boeing Co.',75.43,0.53,0.71,'4/8 12:00am''Manufacturing'],
            [
    'Caterpillar Inc.',67.27,0.92,1.39,'4/1 12:00am''Services'],
            [
    'Citigroup, Inc.',49.37,0.02,0.04,'4/4 12:00am''Finance'],
            [
    'E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'4/1 12:00am''Manufacturing'],
            [
    'Exxon Mobil Corp',68.1,-0.43,-0.64,'4/3 12:00am''Manufacturing'],
            [
    'General Electric Company',34.14,-0.08,-0.23,'4/3 12:00am''Manufacturing'],
            [
    'General Motors Corporation',30.27,1.09,3.74,'4/3 12:00am''Automotive'],
            [
    'Hewlett-Packard Co.',36.53,-0.03,-0.08,'4/3 12:00am''Computer'],
            [
    'Honeywell Intl Inc',38.77,0.05,0.13,'4/3 12:00am''Manufacturing'],
            [
    'Intel Corporation',19.88,0.31,1.58,'4/2 12:00am''Computer'],
            [
    'International Business Machines',81.41,0.44,0.54,'4/1 12:00am''Computer'],
            [
    'Johnson & Johnson',64.72,0.06,0.09,'4/2 12:00am''Medical'],
            [
    'JP Morgan & Chase & Co',45.73,0.07,0.15,'4/2 12:00am''Finance'],
            [
    'McDonald\'s Corporation',36.76,0.86,2.40,'4/2 12:00am''Food'],
            [
    'Merck & Co., Inc.',40.96,0.41,1.01,'4/2 12:00am''Medical'],
            [
    'Microsoft Corporation',25.84,0.14,0.54,'4/2 12:00am''Computer'],
            [
    'Pfizer Inc',27.96,0.4,1.45,'4/8 12:00am''Services''Medical'],
            [
    'The Coca-Cola Company',45.07,0.26,0.58,'4/1 12:00am''Food'],
            [
    'The Home Depot, Inc.',34.64,0.35,1.02,'4/8 12:00am''Retail'],
            [
    'The Procter & Gamble Company',61.91,0.01,0.02,'4/1 12:00am''Manufacturing'],
            [
    'United Technologies Corporation',63.26,0.55,0.88,'4/1 12:00am''Computer'],
            [
    'Verizon Communications',35.57,0.39,1.11,'4/3 12:00am''Services'],
            [
    'Wal-Mart Stores, Inc.',45.45,0.73,1.63,'4/3 12:00am''Retail'],
            [
    'Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'4/1 12:00am''Services']
    ];

    // add in some dummy descriptions
    for(var 0Ext.grid.dummyData.lengthi++){
            
    Ext.grid.dummyData[i].push('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna.<br/><br/>Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit.');


  8. #38
    Ext JS Premium Member pavanextjs's Avatar
    Join Date
    Jul 2008
    Posts
    118
    Vote Rating
    2
    pavanextjs is on a distinguished road

      0  

    Default


    Try bbar instead of buttons config...

    PHP Code:
    bbar: [{ 
            
    text'Save'
            
    id'kashdk' 
        
    },{ 
            
    text'Cancel'
            
    id'aopsduah' 
    }] 

  9. #39
    Sencha User
    Join Date
    Aug 2009
    Posts
    56
    Vote Rating
    0
    piccard is on a distinguished road

      0  

    Default


    thanx for the bbar-tip, pavanextjs, it's working.
    you made me happy ;-)

    nevertheless, I think it's really a problem, not rendering any buttons inside a form :-(

  10. #40
    Ext User
    Join Date
    Mar 2010
    Posts
    18
    Vote Rating
    0
    boriss is on a distinguished road

      0  

    Default Stopping events of an inner grid

    Stopping events of an inner grid


    Quote Originally Posted by gurpal2000 View Post
    I put a grid inside a rowpanelexpander (ie. replaced your tabpanel with gridpanel). I added a rowclick listener to the outer grid. When i click on the rows inside my large grid, i get all sorts of weird behaviour with random rows being highlighted and erratic expand/collapse.

    It's hard to explain but if i added a row listener to the inner grid, how would the outer grid know to highlight that large row?
    Quite a lot of events bubble up. This includes eg. mouseover and mouseout. When you move the mouse over an inner grid rows of the outer grid are also highlighted. The appropriate event handlers in Ext.grid.GridView must be overridden to prevent this:

    Code:
    Ext.override(Ext.grid.GridView, { 
        onRowOver: function(e, t) { 
            var row; 
            if ((row = this.findRowIndex(t)) !== false) { 
                this.addRowClass(row, 'x-grid3-row-over'); 
            } 
            e.stopEvent(); 
        }, 
    
        onRowOut: function(e, t) { 
            var row; 
            if ((row = this.findRowIndex(t)) !== false && !e.within(this.getRow(row), true)) { 
                this.removeRowClass(row, 'x-grid3-row-over'); 
            } 
            e.stopEvent(); 
        } 
    });
    Other events like click and doubleclick are handled by the GridPanel. Only one function must be overridden though as it is used by all event handlers in that class:

    Code:
    Ext.override(Ext.grid.GridPanel, { 
        processEvent: function(name, e) { 
            this.view.processEvent(name, e); 
            e.stopEvent(); 
        } 
    }
    As far as I can tell my inner grid now doesn't interfere with the outer grid anymore.

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..."