Threaded View

  1. #1
    Sencha User
    Join Date
    Jun 2011
    Posts
    131
    Answers
    1
    Vote Rating
    1
    shaoen01 is on a distinguished road

      0  

    Default Answered: Duplicate button on Row Grid?

    Answered: Duplicate button on Row Grid?


    Hi,

    I am using a grid and added one button at the last column. My purpose for this button is to allow user to open another window after clicking on this button. However, when ido a search grid or reset my grid to display all rows, i will see a duplicate button being rendered. Under the address column, i should only see one manage button.

    Any thoughts on how i can check if the button has been created and stop the renderer from creating again?

    Untitled.jpg

    Code:
    {
                    header: 'Address',
                    width: 90,
                    renderer: function(value, metadata, record) {
                        //window.alert("here");
                        
                        var divid="add_"+record.get("userid");
                        // executes after 2 seconds:
                        Ext.Function.defer(createGridButton, 500, this, ["Manage", divid, record,"icon-grid","Address"]);
                        return('<div id="' + divid + '"></div>');
                    }
                }
    
    //Create button in grid cell
    function createGridButton(value, divid, record,iconname,buttonOwner) {
            new Ext.Button({
                id: divid,
                itemId: divid,
                text: value,
                iconCls: iconname,
                handler : function(btn, e) {
                    //E.g. add_123
                    var tmpUserID=divid.split("_")[1];
                    ManageExtWindow(buttonOwner,tmpUserID)
                }
            }).render(document.body, divid);    
            
    
    }
    
    function ManageExtWindow(extWinType,UserID){
        if(extWinType=="Address"){
            PopupCenter("listing.php?Listing=Address&src=User&srcid=" + UserID,"Manage Address",900,600);
        }else if(extWinType=="Telephone"){
            PopupCenter("listing.php?Listing=Telephone&src=User&srcid=" + UserID,"Manage Address",900,600);
        }
        
        
    }

  2. I believe that tobiu was suggesting that you use an Action Column rather than trying to inject a button like that.

    An alternative would be to use the Component Column UX:

    http://www.sencha.com/forum/showthread.php?148064

    I believe your current implementation will suffer quite badly from leaks. Do you ever destroy those buttons (just because they are no longer on screen doesn't mean they have been destroyed)?

Thread Participants: 2