/*********************************************/
    // stuff for table copy
    private void PlacePnlCopyTable()
    {
        Control buttondiv = GetSortButtonContainer();
        //NEED TO WRAP THIS IN LABEL FOR ICON/BUTTON COMBO, ASSIGN CSS CLASS
        Button btnCopyTable = new Button();

        btnCopyTable.Text = "Copy Table";  //  size ??
        //btnCopyTable.Height = 26;
        btnCopyTable.ID = PageControls.BTN_COPY_TABLE;
        btnCopyTable.ID = PageControls.BTN_COPY_TABLE;
        buttondiv.Controls.Add(btnCopyTable);

        Panel copyTableContainer = GetCopyTableContainer();

        if (copyTableContainer != null)
        {
            pnlCopyTable = PageControls.generateCopyPanel();

            copyTableContainer.Controls.Add(pnlCopyTable);
            rdbtnTableWithHeaders                    = pnlCopyTable.FindControl(PageControls.RDBTN_WITH_HEADER) as RadioButton;
            rdbtnTableWithoutHeaders                 = pnlCopyTable.FindControl(PageControls.RDBTN_WITHOUT_HEADER) as RadioButton;
            rdbtnTableWithHeaders.CheckedChanged    += new EventHandler(rdbtnTable_CheckedChanged);
            rdbtnTableWithoutHeaders.CheckedChanged += new EventHandler(rdbtnTable_CheckedChanged);

            // these two lines don't work - won't cause correct postback
            //rdbtnTableWithHeaders.Attributes.Add("onClick", "HidePopup('" + PageControls.COPY_BEHAVIOR + "');  __doPostBack(this.id,'');");
            //rdbtnTableWithoutHeaders.Attributes.Add("onClick", "HidePopup('" + PageControls.COPY_BEHAVIOR + "');  __doPostBack(radioButton.id,'');");

            boxCheckAll  = pnlCopyTable.FindControl(PageControls.CHECK_SELECT_ALL) as CheckBox;
            txtCopyTable = pnlCopyTable.FindControl(PageControls.INPUT_COPY_TABLE) as TextBox;
            boxCheckAll.Attributes.Add("onclick", "selectTable('" + txtCopyTable.ClientID + "', '" + boxCheckAll.ClientID + "')");
            Button btnCopyDone = pnlCopyTable.FindControl(PageControls.BTN_DONE) as Button;
            btnCopyDone.Click        += new EventHandler(btnCopyDone_Click);
            btnCopyDone.OnClientClick = "HidePopup('" + PageControls.COPY_BEHAVIOR + "'); return true;";
            extenderCopy = PageControls.generateCopyExtender();
            copyTableContainer.Controls.Add(extenderCopy);
        }
    }
    protected virtual void InitializeComponent()
    {
        TEXT_BOX_IDS = GetIDs(IDs.TEXT_BOX);
        LABEL_IDS    = GetIDs(IDs.LABEL);


        secondPanel = GetSecondPanel();

        grid = GenerateGridControl();
        pnlMainGrid.Controls.Add(grid);

        // advanced mode stuff
        Control buttondiv = getButtonDiv();

        if (hasAdvanced)
        {
            Label lblAdvanced = new Label();

            lblAdvanced.ID                  = "lblAdvancedMode";
            lblAdvanced.CssClass            = "icon-menu";
            lblAdvanced.AssociatedControlID = "btnAdvancedMode";

            lblAdvanced.ToolTip = "expand additional columns";
            lblAdvanced.Text    = "<i class='fas fa-eye-slash fa-fw-slash row-icon'></i><span>SHOW/HIDE</span>";

            buttondiv.Controls.Add(lblAdvanced);

            btnAdvanced                   = new Button();
            btnAdvanced.ID                = "btnAdvancedMode";
            btnAdvanced.Text              = "Expand";
            btnAdvanced.CssClass          = "menu-button";
            btnAdvanced.Click            += btnAdvanced_Click;
            btnAdvanced.UseSubmitBehavior = false;
            buttondiv.Controls.Add(btnAdvanced);
        }

        //THIS FEATURE CAN BE ACCOMPLISHED BY HIGHLIGHTING DATA AND PASTING INTO EXCEL EXCEPT IN SOME OUTPUT CASES
        Label lblCopyTable = new Label();

        lblCopyTable.Text                = "<i class='fas fa-copy fa-fw row-icon'></i>";
        lblCopyTable.CssClass            = "hidden icon-menu";
        lblCopyTable.AssociatedControlID = PageControls.BTN_COPY_TABLE;
        buttondiv.Controls.Add(lblCopyTable);

        Button btnCopyTable = new Button();  //  size ?

        btnCopyTable.ID       = PageControls.BTN_COPY_TABLE;
        btnCopyTable.Text     = "Copy";
        btnCopyTable.CssClass = "menu-button";
        buttondiv.Controls.Add(btnCopyTable);


        secondPanel.CssClass = "gridPanel";

        thirdPanel = GetThirdPanel();
        // copy table pop up stuff
        Panel fifthPanel = GetFifthPanel();

        pnlCopyTable = PageControls.generateCopyPanel();

        fifthPanel.Controls.Add(pnlCopyTable);
        rdbtnTableWithHeaders                    = pnlCopyTable.FindControl(PageControls.RDBTN_WITH_HEADER) as RadioButton;
        rdbtnTableWithoutHeaders                 = pnlCopyTable.FindControl(PageControls.RDBTN_WITHOUT_HEADER) as RadioButton;
        rdbtnTableWithHeaders.CheckedChanged    += new EventHandler(rdbtnTable_CheckedChanged);
        rdbtnTableWithoutHeaders.CheckedChanged += new EventHandler(rdbtnTable_CheckedChanged);
        boxCheckAll  = pnlCopyTable.FindControl(PageControls.CHECK_SELECT_ALL) as CheckBox;
        txtCopyTable = pnlCopyTable.FindControl(PageControls.INPUT_COPY_TABLE) as TextBox;
        boxCheckAll.Attributes.Add("onclick", "selectTable('" + txtCopyTable.ClientID + "', '" + boxCheckAll.ClientID + "')");

        Button btnCopyDone = pnlCopyTable.FindControl(PageControls.BTN_DONE) as Button;

        btnCopyDone.Click += new EventHandler(btnCopyDone_Click);
        Master.ClickOnEnter(btnCopyDone.ClientID, txtCopyTable);
        extenderCopy = PageControls.generateCopyExtender();
        fifthPanel.Controls.Add(extenderCopy);
    }