Hi, I have a RadGrid within a RadAjaxPanel. One of the columns has a LinkButton whose click javascript is set when the Item is created to call another Javascript method, "ShowExisting3" with the index corresponding to the DataRow. When ShowExisting3 is called, the javascript method doesn't have access to any controls other than the ajax manager and script manager (as in, all calls like $find("<%= flightConfigGrid.ClientID %>") return null). 
I've also tried setting the onclick javascript to directly call ShowExisting3(0) and $find still returns null. Strangely enough, oWnd in both cases is not null. What I can't figure out is why configValuesWindow can be accessed and flightConfigGrid cannot. My end goal is a popup window (configValuesWindow) whose contents are populated by 2 invisible columns in the data grid. Does anyone have any ideas?
Here's much of the aspx, and afterwards some of the C#
 
 
 
 
 
 
 
 
 
 
 
Here is the C# for the DataBound event. It sets the onclick event to call ShowExisting3(index) which exists already in the aspx. When it is called, the $find methods return null.
 
Thanks!
                                I've also tried setting the onclick javascript to directly call ShowExisting3(0) and $find still returns null. Strangely enough, oWnd in both cases is not null. What I can't figure out is why configValuesWindow can be accessed and flightConfigGrid cannot. My end goal is a popup window (configValuesWindow) whose contents are populated by 2 invisible columns in the data grid. Does anyone have any ideas?
Here's much of the aspx, and afterwards some of the C#
<telerik:RadScriptManager ID="scriptManager" runat="server" /> <telerik:RadAjaxManager ID="ajaxManager" runat="server" OnAjaxRequest="ajaxManager_AjaxRequest"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="ajaxManager"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="inputPanel" /> <telerik:AjaxUpdatedControl ControlID="errorPanel" /> <telerik:AjaxUpdatedControl ControlID="configPanel" LoadingPanelID="ajaxLoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="mappingsPanel" /> <telerik:AjaxUpdatedControl ControlID="rotationsPanel" /> <telerik:AjaxUpdatedControl ControlID="featureCompositionPanel" /> <telerik:AjaxUpdatedControl ControlID="permaLinkPanel" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="TopSubmitButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="inputPanel" /> <telerik:AjaxUpdatedControl ControlID="errorPanel" /> <telerik:AjaxUpdatedControl ControlID="configPanel" LoadingPanelID="ajaxLoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="mappingsPanel" /> <telerik:AjaxUpdatedControl ControlID="rotationsPanel" /> <telerik:AjaxUpdatedControl ControlID="featureCompositionPanel" /> <telerik:AjaxUpdatedControl ControlID="permaLinkPanel" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="configPanel"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="configValuesWindowPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> <ClientEvents OnRequestStart="RequestStart" OnResponseEnd="ResponseEnd" /> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="ajaxLoadingPanel" runat="server" Skin="Default"/> <telerik:RadWindowManager ID="windowManager" runat="server" /> <telerik:RadWindow runat="server" ID="configValuesWindow" VisibleStatusbar="False" VisibleTitlebar="True" AutoSize="True" MinWidth="400"> <ContentTemplate> <asp:UpdatePanel ID="configValuesWindowPanel" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table width="100%"> <tr> <td width="50%"><b>Values in Flight</b></td> <td width="50%"><b>Values out of Flight</b></td> </tr> <tr style="vertical-align: top"> <td id="ValuesInFlightCell"> <asp:Label ID="FooBaz" runat="server"></asp:Label> </td> <td id="ValuesOutOfFlightCell" /> </tr> </table> </ContentTemplate> </asp:UpdatePanel> </ContentTemplate> </telerik:RadWindow>   <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function RequestStart(sender, args) { var loadingPanel = $find("<%= ajaxLoadingPanel.ClientID %>"); var updatedControl = "<%= configPanel.ClientID %>";   //show the loading panel over the updated control loadingPanel.show(updatedControl); }   function ResponseEnd() { var loadingPanel = $find("<%= ajaxLoadingPanel.ClientID %>"); var updatedControl = "<%= configPanel.ClientID %>"; if (loadingPanel != null) { loadingPanel.hide(updatedControl); } } function pageLoad(sender, eventArgs) { if (!eventArgs.get_isPartialLoad()) { $find("<%= ajaxManager.ClientID %>").ajaxRequest("InitialPageLoad"); } }   function ShowExisting3(index) { var oWnd = $find("<%= configValuesWindow.ClientID %>"); var dataItem = $find("<%= flightConfigGrid.ClientID %>").get_masterTableView().get_dataItems()[index]; var inValues = dataItem.getDataKeyValue("InParams"); var outValues = dataItem.getDataKeyValue("OutParams"); document.getElementById('ValuesInFlightCell').innerHTML = inValues; document.getElementById('ValuesOutOfFlightCell').innerHTML = outValues; oWnd.show(); } </script> </telerik:RadCodeBlock> <h2><asp:Literal ID="PageTitleLiteral" runat="server" Text="Single Flight Config"></asp:Literal></h2>   <telerik:RadAjaxPanel ID="inputPanel" runat="server"> <asp:Literal ID="FlightNameLiteral" runat="server" Text="Flight:" /> <asp:TextBox ID="FlightNameTextBox" runat="server"></asp:TextBox> <asp:Button ID="TopSubmitButton" runat="server" Text="Submit" onclick="TopSubmitButton_Click" /> <asp:Literal ID="UIMessageLiteral" runat="server" Text=""></asp:Literal> </telerik:RadAjaxPanel> <br />   <telerik:RadAjaxPanel ID="errorPanel" runat="server" CssClass="error"> <br /> <asp:Literal ID="errorLiteral" runat="server" /> </telerik:RadAjaxPanel> <br />   <telerik:RadAjaxPanel ID="configPanel" runat="server" ScrollBars="Auto" Width="100%"> <telerik:RadGrid ID="flightConfigGrid" runat="server" AutoGenerateColumns="False" AllowSorting="True" GridLines="None" AllowPaging="True" PageSize="100" OnItemCreated="OnItemCreated" OnDataBound="OnDataBound" OnItemCommand="OnItemCommand"> <MasterTableView DataKeyNames="Path" AllowMultiColumnSorting="True" SortExpressions="Environment" GroupLoadMode="Server"> <Columns> <telerik:GridBoundColumn DataField="Environment" HeaderText="Environment" SortExpression="Environment" /> <telerik:GridBoundColumn DataField="Path" HeaderText="Path" SortExpression="Path" /> <telerik:GridBoundColumn DataField="FileName" HeaderText="FileName" SortExpression="FileName" /> <telerik:GridBoundColumn DataField="SectionName" HeaderText="Section" SortExpression="SectionName" /> <telerik:GridBoundColumn DataField="ParameterName" HeaderText="Parameter" SortExpression="ParameterName" /> <telerik:GridBoundColumn DataField="AdditionalFilterSetName" HeaderText="Additional Filters" SortExpression="AdditionalFilterSetName" /> <telerik:GridTemplateColumn UniqueName="InParamWithMouseOver" HeaderText="Values in Flight (click for full set)"> <ItemTemplate> <%# Eval("InParameterValue") %> <asp:LinkButton ID="InParamLink" runat="server" CommandName="InParamLink" Text="..."/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="InParams" HeaderText="InParams" Visible="False"/> <telerik:GridTemplateColumn UniqueName="OutParamWithMouseOver" HeaderText="Values Outside of Flight (click for full set)"> <ItemTemplate> <%# Eval("OutParameterValue") %> <asp:LinkButton ID="OutParamLink" runat="server" CommandName="OutParamLink" Text="..."/> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="OutParams" HeaderText="InParams" Visible="False"/> </Columns> </MasterTableView> </telerik:RadGrid> </telerik:RadAjaxPanel>Here is the C# for the DataBound event. It sets the onclick event to call ShowExisting3(index) which exists already in the aspx. When it is called, the $find methods return null.
protected void OnDataBound(object sender, EventArgs e){ foreach (GridDataItem item in this.flightConfigGrid.Items) { var inParamsLinkCell = item["InParamWithMouseOver"]; var inParamsCell = item["InParams"]; var inParamLinkControl = (LinkButton)inParamsLinkCell.FindControl("InParamLink"); inParamLinkControl.Attributes.Add( "onclick", string.Format("ShowExisting3({0});return false;", item.ItemIndex)); }}Thanks!

