Hi
Please bear with me I'm quite new to Teleik. My scenario is I have a RadGrid which is built completely in C# code because the columns can vary. Each data bound field is either a link button or a label. For the link button I want to be able to open a child window which contains a RadGrid displaying the drill down data of the selected link button.
This is the code which builds the main RadGrid:
001.private Control DefineGridStructure(DataTable InGrid)002.    {003.        RadGrid grid = new RadGrid();004.        grid.ID = "RadGridDetail";005.        grid.DataSource = InGrid;006.        grid.Skin = "Outlook";007.        grid.Width = Unit.Percentage(100);008.        grid.AllowPaging = false;009.        grid.AutoGenerateColumns = false;010.        grid.MasterTableView.Width = Unit.Percentage(100);011.        grid.HeaderStyle.Font.Size = 10;012.        grid.HeaderStyle.Font.Bold = true;013.        grid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;014. 015.        try016.        {017.            grid.MasterTableView.DataKeyNames = new string[] { InGrid.Columns[1].ColumnName };018. 019. 020.            GridBoundColumn Col1 = new GridBoundColumn();021.            Col1.DataField = InGrid.Columns[0].ColumnName;022.            //GridBoundColumn Col2 = new GridBoundColumn();023.            //Col2.DataField = InGrid.Columns[1].ColumnName;024. 025.            if (InGrid.Columns[0].ColumnName == "PDESC")026.            {027.                Col1.HeaderText = "Problem Description";028.                //Col2.HeaderText = "Problem Code";029.            }030.            else031.            {032.                Col1.HeaderText = "Region";033.            }034.            grid.Columns.Add(Col1);035. 036.            //Col3 - Query037.            GridTemplateColumn Col3 = new GridTemplateColumn();038.            Col3.ItemTemplate = new MyTemplate("Query", "£'s Val", "In Qry");039.            Col3.HeaderText = "Query";040.            grid.Columns.Add(Col3);041. 042.            //Col4 - 90D043.            GridTemplateColumn Col4 = new GridTemplateColumn();044.            Col4.ItemTemplate = new MyTemplate("D90", 4, "lnk");045.            Col4.HeaderText = "90+ Days";046.            grid.Columns.Add(Col4);047. 048.            //Col5 - Month 3049.            GridTemplateColumn Col5 = new GridTemplateColumn();050.            Col5.ItemTemplate = new MyTemplate("M3", 5, "lnk");051.            Col5.HeaderText = Utils.GetMonth(3) + "-" + Utils.GetYear(3);052.            grid.Columns.Add(Col5);053. 054.            //Col6 - Month 2055.            GridTemplateColumn Col6 = new GridTemplateColumn();056.            Col6.ItemTemplate = new MyTemplate("M2", 6, "lnk");057.            Col6.HeaderText = Utils.GetMonth(2) + "-" + Utils.GetYear(2);058.            grid.Columns.Add(Col6);059. 060.            //Col7 - Month 1061.            GridTemplateColumn Col7 = new GridTemplateColumn();062.            Col7.ItemTemplate = new MyTemplate("M1", 7, "lnk");063.            Col7.HeaderText = Utils.GetMonth(1) + "-" + Utils.GetYear(1);064.            grid.Columns.Add(Col7);065. 066.            //*****Building dynamic number of weeks column******067.            DataTable NumWeeks = Utils.GetDataTable("SELECT * FROM [dbo].[fn_GetNumWeeks]() ORDER BY intWEEK ASC");068.            int numOfWeeks = NumWeeks.Rows.Count;069. 070.            for (int i = 1; i < (numOfWeeks + 1); i++)071.            {072.                int columnNo = 7 + i;073.                GridTemplateColumn Cols = new GridTemplateColumn();074.                Cols.ItemTemplate = new MyTemplate("Wk" + i, columnNo, "lnk");075.                Cols.HeaderText = Utils.GetMonth(0) + "<br/> " + "Week " + i;076.                grid.Columns.Add(Cols);077.            }078.            //*************************************************079. 080.            //Col13 - MTD081.            GridTemplateColumn Col13 = new GridTemplateColumn();082.            Col13.ItemTemplate = new MyTemplate("MTD", 13, "lnk");083.            Col13.HeaderText = "MTD";084.            grid.Columns.Add(Col13);085. 086.            //Col14 - YTD087.            GridTemplateColumn Col14 = new GridTemplateColumn();088.            Col14.ItemTemplate = new MyTemplate("YTD", 14, "lbl");089.            Col14.HeaderText = "YTD";090.            grid.Columns.Add(Col14);091. 092.            //Col15 - OO/S093.            GridTemplateColumn Col15 = new GridTemplateColumn();094.            Col15.ItemTemplate = new MyTemplate("OOS", 15, "lbl");095.            Col15.HeaderText = "Overall <br/> Outstanding";096.            grid.Columns.Add(Col15);097. 098.            //Col16 - % OS Vs OV099.            GridTemplateColumn Col16 = new GridTemplateColumn();100.            Col16.ItemTemplate = new MyTemplate("Pct", 16, "lbl");101.            Col16.HeaderText = "% Of Outstanding <br/> Vs Overall";102.            grid.Columns.Add(Col16);103. 104.            ShowResult.Controls.Add(grid);105.        }106.        catch107.        {108.            //No records found.109.        }110.        return grid;111. 112.    }The columns are generated using Templates:
01.Label[] lblVal = new Label[17];02.        Label[] lblQty = new Label[17];03. 04.        LinkButton[] lnkVal = new LinkButton[17];05.        LinkButton[] lnkQty = new LinkButton[17];06. 07.        public MyTemplate(string cName, int typeID, string clinkOrLabel)08.        {09.            ID = typeID;10.            templateType = cName;11.            colname = cName;12.            linkOrLabel = clinkOrLabel;13.            Params = 3;14.        }And finally, this is the InstantiateIn code which creates the grid and prints it to the screen:
01.public void InstantiateIn(Control container)02.        {03.            Literal lc = new Literal();04.            lc.Text = "<hr style='border: 1px;border-style: dotted;'/>";     05. 06.            if(templateType == "Query")07.            {08.                Label lblValQ = new Label();09.                lblValQ.ID = colname + "Val";10.                Label lblQtyQ = new Label();11.                lblQtyQ.ID = colname + "Qty";12.                lblValQ.Font.Size = 9;13.                lblQtyQ.Font.Size = 9;14.                 15.                if (Params == 3)16.                {17.                    lblValQ.Text = ValCnt;18.                    lblQtyQ.Text = QtyCnt;19.                }20.                container.Controls.Add(lblValQ);21.                container.Controls.Add(lc);22.                container.Controls.Add(lblQtyQ);23.            }24.            else25.            {26.                //decided whether the field should be a link button or a label27.                if (linkOrLabel == "lnk")28.                {29.                    lnkVal[ID] = new LinkButton();30.                    lnkVal[ID].DataBinding += lnkVal_DataBinding;31.                    lnkVal[ID].Attributes.Add("OpenWindow", "openChildWindow(4,31,99);");32.                    lnkQty[ID] = new LinkButton();33.                    lnkQty[ID].DataBinding += lnkQty_DataBinding;34.                    lnkQty[ID].Attributes.Add("OpenWindow", "openChildWindow(4, 31,99);");35.                         36.                    container.Controls.Add(lnkVal[ID]);37.                    container.Controls.Add(lc);38.                    container.Controls.Add(lnkQty[ID]);39.                }40.                else41.                {42.                    lblVal[ID] = new Label();43.                    lblVal[ID].DataBinding += lblVal_DataBinding;44.                    lblQty[ID] = new Label();45.                    lblQty[ID].DataBinding += lblQty_DataBinding;                  46. 47.                    container.Controls.Add(lblVal[ID]);48.                    container.Controls.Add(lc);49.                    container.Controls.Add(lblQty[ID]);50.                }51.            }52.        }I am attempting to add Attributes to all the linkbuttons which will send to the javascript displayed below to get the data for the new window.
1.<script type="text/javascript" language="javascript">2.        function openChildWindow(Period, SalesMn, intWeek, ReasCode) {3.            window.open('RadGridExportWebForm.aspx?Period=' + Period + '&SalesMn=' + escape(SalesMn) + '&intWeek=' + intWeek + '&ReasCode=' + ReasCode, 'childWindow', 'width=800,height=600,scrollbars=1,menubar=0,status=0,toolbar=0,resizable=1,titlebar=0', false);4.        };5.  </script>However what is actually happening is the current page is simply reloading, it's not creating or opening a new window as I want it to.
I hope this makes sense
Any help would be greatly appreciated.
Many thanks!