Hello,
I'm having an issue posting values from a child window RadTextBox to the parent window RadTextBox. I can successfully post the value if I use an <input> tag on the parent page but when I swap it for a <asp:TextBox> or <telerik:RadTextBox> the javascript breaks with error "Microsoft JScript runtime error: 'valCity' is null or not an object. Take a look at the code below:
Parent Page:
function openDialog() { radDialog1 = radopen("DataMigration_Dialog1.aspx", "RadWindow1"); } <telerik:RadButton ID="rb_Migrate" runat="server" Width="150px" Text="Migrate Accounts" EnableEmbeddedSkins="false" BackColor="#33393E" ForeColor="White" OnClientClicked="openDialog" AutoPostBack="false"> </telerik:RadButton> <br /> </asp:Panel> <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableEmbeddedSkins="false" > <Windows> <telerik:RadWindow ID="RadWindow1" runat="server" Height="450" Width="240" Behaviors="Close, Minimize, Maximize, Reload" Modal="true" > </telerik:RadWindow> </Windows> </telerik:RadWindowManager> <asp:TextBox ID="City1" runat="server" ></asp:TextBox> <%--<input type="text" id="City" value="Hide" runat="server" />--%> <asp:TextBox ID="ParentCity" runat="server" ></asp:TextBox> <asp:TextBox ID="TimeZone" runat="server" ></asp:TextBox> <asp:TextBox ID="DMSVendor" runat="server" ></asp:TextBox> <asp:TextBox ID="DMSUsername" runat="server" ></asp:TextBox> Child Page:
function submit() { valCity = parent.document.getElementById("City1"); valCity.value = document.getElementById("modalCity1").value; self.close(); } City: <br /> <telerik:RadTextBox ID="modalCity1" runat="server" EnableEmbeddedSkins="false" Width="200"> </telerik:RadTextBox> <telerik:RadButton ID="RadButton1" runat="server" Text="Submit" EnableEmbeddedSkins="false" Skin="WebBlue" ButtonType="StandardButton" BackColor="#CCCCCC" OnClientClicked="submit" > </telerik:RadButton>
<rad:GridBoundColumn DataField="FileName" UniqueName="NameColumn" />void ListGrid_EditCommand(object source, GridCommandEventArgs e)<
telerik:GridDateTimeColumn UniqueName="DatePlaced" DataField="DatePlaced" HeaderText="Date Placed"
HeaderStyle-Width="160px" DataFormatString="{0:d}">
</telerik:GridDateTimeColumn>
<telerik:GridDateTimeColumn UniqueName="DateShipped" DataField="DateShipped" HeaderText="Date Shipped"
HeaderStyle-Width="160px" DataFormatString="{0:d}">
</telerik:GridDateTimeColumn>
<telerik:GridTemplateColumn DataField="DaysToShip" HeaderText="Days To Ship" >
<ItemTemplate>
<asp:Label ID="lblDaysToShip" runat="server"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lblDaysToShipFooter" runat="server"></asp:Label>
</FooterTemplate>
</telerik:GridTemplateColumn>
C# code
double
totalRows, countRows;
protected
void TrackingGrid_ItemDataBound(object source, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
(item.FindControl(
"lblDaysToShip") as Label).Text = DateTime.Parse(item["DateShipped"].Text).Subtract(DateTime.Parse(item["DatePlaced"].Text)).Days.ToString();
totalRows +=
Double.Parse((item.FindControl("lblDaysToShip") as Label).Text);
countRows += 1;
}
if (e.Item is GridFooterItem)
{
GridFooterItem footerItem = e.Item as GridFooterItem;
(footerItem.FindControl(
"lblDaysToShipFooter") as Label).Text = "Average days: " + (totalRows / countRows).ToString("N2");
}
}
Thanks for your help
Greg