Hi,
I am trying to implement "Export to Excel" functionality in a ASP.Net Ajax nested grid. The grid is a user control which displays the results.
I have used the RadAjaxManager on my main page (where the grid user control is displayed) and RadAjaxManagerProxy on the user control.
User Control html code:
User Control code behind (.cs): In the nested grid, master grid data gets binded when the page loads. Nested grid data gets binded only when user tries to expand the data for a particular row in the mater grid.
Questions: How do i register Client Events? I tried doing in Page_Load, but system threw an exception because it is not able to find getCurrent(this.page)
I want to export with "ExportOnlydata" = true and "IgnorePaging" = true, In doing so i get excpetion, which i think is because child grid data is not available (since it gets loaded only on Grid ItemCommand event).
I would really appreciate if you could look into my code and suggest me how to implement "Export to excel" functionality in this case.
Thanks,
-Rajesh
I am trying to implement "Export to Excel" functionality in a ASP.Net Ajax nested grid. The grid is a user control which displays the results.
I have used the RadAjaxManager on my main page (where the grid user control is displayed) and RadAjaxManagerProxy on the user control.
<%@ Page Title="" Language="C#" MasterPageFile="~/UserAccess.Master" AutoEventWireup="true" CodeBehind="QuoteAndPolicy.aspx.cs" Inherits="PASCore.UserAccess.QuoteAndPolicy" %> <%@ Register Src="CustomControls/SearchPanel.ascx" TagName="SearchPanel" TagPrefix="search" %> <%@ Register Src="CustomControls/QuoteAndPolicyGrid.ascx" TagName="QuoteAndPolicyGrid" TagPrefix="search" %> <%-- Title of the web page --%> <asp:content id="Title" contentplaceholderid="PageTitlePlaceHolder" runat="server"> User Access - Quote/ Policy </asp:content> <%-- Main Search Panel --%> <asp:content ContentPlaceHolderID="mainContentPlaceHolder" runat="server"> <telerik:RadAjaxManager ID="radAjaxManager" runat="server"/> <script type="text/javascript" src="Scripts/QuoteAndPolicy.js"></script> <asp:table id="searchPanelTable" runat="server"> <asp:tablerow runat="server"> <asp:tablecell runat="server"> <search:SearchPanel ID="SearchPanel" runat="server" /> </asp:tablecell> </asp:tablerow> </asp:table> <asp:table id="searchResultsTable" runat="server"> <asp:tablerow runat="server"> <asp:tablecell runat="server"> <search:QuoteAndPolicyGrid ID="QuoteAndPolicyGrid" runat="server" /> </asp:tablecell> </asp:tablerow> </asp:table> </asp:content>User Control html code:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="QuoteAndPolicyGrid.ascx.cs" Inherits="PASCore.UserAccess.Controls.QuoteAndPolicyGrid" %> <%@ Register Src="QuoteAndPolicyActions.ascx" TagName="QuoteAndpolicyActions" TagPrefix="Action" %> <style type="text/css"> .viewWrap { color: #819598; font-weight: bold; font-size: 16px; padding-top: 5px; padding-left: 15px; padding-bottom: 10px; padding-right: 5px; } .AjaxLoadingPanel { background: #fff url(Content/Images/loading.gif) center center no-repeat; } .RadGridPager { height: 51px; padding-left: 5px; background-color: white; vertical-align: bottom; color: #b79ea9; font-weight: bold; } .RadGridItemStyle { border-right: solid 1px gray !important; } </style> <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="gridResults"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="gridResults" LoadingPanelID="radAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManagerProxy> <telerik:RadAjaxLoadingPanel ID="radAjaxLoadingPanel" runat="server" Transparency="25" CssClass="AjaxLoadingPanel" /> <telerik:RadGrid ID="gridResults" runat="server" CellSpacing="0" GridLines="Both" AllowPaging="True" PageSize="20" ShowGroupPanel="True" OnItemCommand="GridResult_ItemCommand" OnNeedDataSource="MainGrid_NeedDataSource" BorderStyle="Solid" GroupingEnabled="true" AutoGenerateColumns="false" AllowSorting="true" Width="100%"> <ClientSettings AllowColumnsReorder="false" ReorderColumnsOnClient="true" AllowAutoScrollOnDragDrop="True"> <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True"></Resizing> </ClientSettings> <PagerStyle CssClass="RadGridPager" Mode="NextPrevNumericAndAdvanced"></PagerStyle> <SortingSettings></SortingSettings> <ExportSettings HideStructureColumns="true" /> <MasterTableView AllowMultiColumnSorting="True" EditMode="PopUp" CommandItemDisplay="Top"> <NestedViewTemplate> <asp:panel runat="server" id="InnerContainer" cssclass="viewWrap" visible="false"> <telerik:RadTabStrip runat="server" ID="TabStrip" MultiPageID="Multipage" SelectedIndex="0"> <tabs> <telerik:RadTab runat="server" Text="Additional Info" PageViewID="additionalInfoView"> </telerik:RadTab> <telerik:RadTab runat="server" Text="Coverage Details" PageViewID="coverageDetailsView"> </telerik:RadTab> </tabs> </telerik:RadTabStrip> <telerik:RadMultiPage runat="server" ID="multipage" SelectedIndex="0" RenderSelectedPageOnly="false"> <telerik:RadPageView runat="server" ID="additionalInfoView"> <telerik:RadGrid ID="additionalInfoGrid" runat="server" CellSpacing="0" GridLines="Both" AllowPaging="True" PageSize="5" ShowGroupPanel="true" OnNeedDataSource="AdditionalInfoGrid_NeedDataSource" Width="60%"> <clientsettings allowcolumnsreorder="false" reordercolumnsonclient="true"> <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True"></Resizing> </clientsettings> <mastertableview showheader="true" autogeneratecolumns="False" allowpaging="true" pagesize="7" hierarchyloadmode="ServerOnDemand"> <Columns> <telerik:GridBoundColumn HeaderText="Customer Number" UniqueName="CustomerNumber" DataField="CustomerNumber" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Date of Birth" UniqueName="DateOfBirth" DataField="DateOfBirth" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Agency" UniqueName="Agency"" DataField="Agency" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Producer Code" UniqueName="ProducerCode" DataField="ProducerCode" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Last Modified" UniqueName="LastModified" DataField="LastModified" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Comment" UniqueName="Comment" DataField="Comment" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> </Columns> </mastertableview> </telerik:RadGrid> </telerik:RadPageView> <telerik:RadPageView runat="server" ID="coverageDetailsView"> <telerik:RadGrid ID="coverageDetailsGrid" runat="server" CellSpacing="0" GridLines="Both" AllowPaging="True" PageSize="5" ShowGroupPanel="true" OnNeedDataSource="CoverageDetailsGrid_NeedDataSource" Width="60%"> <clientsettings allowcolumnsreorder="false" reordercolumnsonclient="true"> <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True"></Resizing> </clientsettings> <mastertableview showheader="true" autogeneratecolumns="False" allowpaging="true" pagesize="7" hierarchyloadmode="ServerOnDemand"> <Columns> <telerik:GridBoundColumn DataField="NumberOfDrivers" HeaderText="Drivers" UniqueName="NumberOfDrivers" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="NumberOfVehicles" HeaderText="Vehicles" UniqueName="NumberOfVehicles" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CompCollisionDeductible" HeaderText="Comp/Collsion Deductibles" UniqueName="CompCollisionDeductible" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LiabilityLimit" HeaderText="Policy Limits" UniqueName="LiabilityLimit" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CurrentPremium" HeaderText="Lines of Business/Premium" UniqueName="CurrentPremium" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="RenewalPremium" HeaderText="Renewal Premium per LOB" UniqueName="RenewalPremium" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" Visible ="false"> </telerik:GridBoundColumn> </Columns> </mastertableview> </telerik:RadGrid> </telerik:RadPageView> </telerik:RadMultiPage> </asp:panel> </NestedViewTemplate> <RowIndicatorColumn Visible="True"> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True"> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn HeaderText="Quote Number" UniqueName="ContractId" DataField="ContractId" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="ContractId" Visible= false> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Quote Number" UniqueName="ContractNumber" DataField="ContractNumber" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="ContractNumber"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Insured" UniqueName="Insured" DataField="Insured" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="Insured"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Street Address" UniqueName="Address" DataField="Address" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="Address"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Risk State" UniqueName="RiskState" DataField="RiskState" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="RiskState"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Line Of Business" UniqueName="LineOfBusiness" DataField="LineOfBusiness" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="LineOfBusiness"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Product" UniqueName="MarketSegment" DataField="MarketSegment" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="MarketSegment"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Eff - Exp Dates" UniqueName="EffExpDates" DataField="EffExpDate" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="EffExpDates"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Status" UniqueName="Status" DataField="Status" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="Status"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Agency" UniqueName="Agency" DataField="Agency" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="Agency"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Premium" UniqueName="Premium" DataField="Premium" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="Premium"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Renewal Premium" UniqueName="RenewalPremium" DataField="RenewalPremium" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="RenewalPremium" visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Premium Difference ($)" UniqueName="TermPremiumChangeDifference" DataField="TermPremiumChangeDifference" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="TermPremiumChangeDifference" visible="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="Premium Difference (%)" UniqueName="TermPremiumChangePercentage" DataField="TermPremiumChangePercentage" ItemStyle-CssClass="RadGridItemStyle" HeaderStyle-CssClass="RadGridItemStyle" SortExpression="TermPremiumChangePercentage" visible="false"> </telerik:GridBoundColumn> <telerik:GridEditCommandColumn UniqueName="actionsCommandColumn" EditText="Go" ButtonType="PushButton"> </telerik:GridEditCommandColumn> </Columns> <EditFormSettings PopUpSettings-Modal="true" InsertCaption="Actions" EditFormType="Template"> <FormTemplate> <Action:QuoteAndpolicyActions ID="quoteAndPolicyActions" runat="server" /> </FormTemplate> </EditFormSettings> </MasterTableView> <ClientSettings> <ClientEvents OnPopUpShowing="PopUpShowing" /> </ClientSettings> <HeaderStyle BorderStyle="Solid" /> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid>User Control code behind (.cs): In the nested grid, master grid data gets binded when the page loads. Nested grid data gets binded only when user tries to expand the data for a particular row in the mater grid.
/// <summary> /// This event is called to populate data on the MainGrid of the page. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void MainGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { if (ContractSearchResponse == null) return; contracts = ContractSearchResponse.Contracts; var columnsDataQuery = (from contract in contracts orderby String.Concat(contract.InsuredFirstName, string.Empty, String.Empty, contract.InsuredLastName), String.Concat(contract.AddressLine1, ", ", contract.AddressCityName, ", ", contract.AddressCityCode, ", ", contract.AddressStateCode) ascending select new { Insured = String.Format("{0} {1}", contract.InsuredFirstName, contract.InsuredLastName), ContractId = contract.ContractId, ContractNumber = contract.ContractNumber, Address = string.Concat(contract.AddressLine1, ", ", contract.AddressCityName, ", ", contract.AddressCityCode, ", ", contract.AddressStateCode), MarketSegment = contract.MarketSegment, LineOfBusiness = contract.LineType, EffExpDates = contract.ContractExpDate, Status = contract.TransactionStatus.ToString(), RiskState = contract.RiskState, Premium = String.Format("${0}",contract.PreviousTermPremium.ToString()), RenewalPremium = String.Format("${0}", contract.RenewalTermPremium.ToString()), TermPremiumChangeDifference = String.Format("${0}", contract.TermPremiumChangeDifference.ToString()), TermPremiumChangePercentage = String.Format("{0}%",contract.TermPremiumChangePercentage.ToString()) }).AsQueryable(); ((RadGrid)source).DataSource = columnsDataQuery; if (DisplayFutureRenewal) { ((RadGrid)source).Columns.FindByUniqueName("RenewalPremium").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("TermPremiumChangeDifference").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("TermPremiumChangePercentage").Visible = true; } } /// <summary> /// This event is called to populate data on the Additional Info sub-grid of the page. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void AdditionalInfoGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { var contractService = isDebuggingEnabled == true ? ZhongsContractService() : ContractServiceFactory.GetContractService(); ContractDetailResponse contractDetailResponse = null; //Fetch the contract details information. contractDetailResponse = contractService.GetContractDetails(new ContractDetailRequest() { ContractId = contractId, LineType = (lineOfBusiness.CompareTo("Personal Auto") == 0 ? Resources.Enums.LineType.PersonalAuto : Resources.Enums.LineType.PersonalMultiline) } ); if (contractDetailResponse != null) { //Filter the contract details information for Details var contractDetailResponsesQuery = (from contDetailResp in contractDetailResponse.Enumerated() select new { CustomerNumber = contDetailResp.PersonalLine.CustomerNumber, DateOfBirth = contDetailResp.PersonalLine.NamedInsuredDateOfBirth, Agency = contDetailResp.PersonalLine.AgencyName, ProducerCode = contDetailResp.PersonalLine.ProducerCode, LastModified = contDetailResp.PersonalLine.LastModified, Comment = contDetailResp.PersonalLine.Comment } ).AsQueryable(); ((RadGrid)source).Columns.FindByUniqueName("CustomerNumber").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("DateOfBirth").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("LastModified").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("Comment").Visible = true; ((RadGrid)source).DataSource = contractDetailResponsesQuery; } } /// <summary> /// This event is called to populate data on the Coverage Details sub-grid of the page. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void CoverageDetailsGrid_NeedDataSource(object source, GridNeedDataSourceEventArgs e) { var contractService = isDebuggingEnabled == true ? ZhongsContractService() : ContractServiceFactory.GetContractService(); ContractDetailResponse contractDetailResponse = null; //Fetch the contract details information. contractDetailResponse = contractService.GetContractDetails(new ContractDetailRequest() { ContractId = contractId, LineType = (lineOfBusiness.CompareTo("Personal Auto") == 0 ? Resources.Enums.LineType.PersonalAuto : Resources.Enums.LineType.PersonalMultiline) } ); if (contractDetailResponse != null && contractDetailResponse.AutoLOBContract != null) { //Filter the contract details information for Coverage Summary information var coverageDetailsQuery = (from contractDetailResp in contractDetailResponse.Enumerated() select new { NumberOfDrivers = contractDetailResp.AutoLOBContract.DriverList.Count.ToString(), NumberOfVehicles = contractDetailResp.AutoLOBContract.VehicleList.Count.ToString(), CompCollisionDeductible = String.Format("${0}/${1}", string.Empty, string.Empty), LiabilityLimit = String.Format("Liability Limit - ${0}", contractDetailResp.AutoLOBContract.CombinedSingleLimit) }).AsQueryable(); ((RadGrid)source).Columns.FindByUniqueName("NumberOfDrivers").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("NumberOfVehicles").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("CompCollisionDeductible").Visible = true; ((RadGrid)source).Columns.FindByUniqueName("LiabilityLimit").Visible = true; ((RadGrid)source).DataSource = coverageDetailsQuery; return; } if (contractDetailResponse != null && contractDetailResponse.MultilineLOBContract != null) { var lobCurrentTermPremiums = contractDetailResponse.MultilineLOBContract.LOBCurrentTermPremiums == null ? new List <LOBPremium>() : contractDetailResponse.MultilineLOBContract.LOBCurrentTermPremiums; var lobPriorTermPremiums = contractDetailResponse.MultilineLOBContract.LOBPriorTermPremiums == null ? new List<LOBPremium>() : contractDetailResponse.MultilineLOBContract.LOBPriorTermPremiums; var leftOuterJoin = from lctp in lobCurrentTermPremiums join lptp in lobPriorTermPremiums on lctp.LineOfBusiness equals lptp.LineOfBusiness into temp from lptp in temp.DefaultIfEmpty(new LOBPremium(){ LineOfBusiness = lctp.LineOfBusiness, Premium = null}) select new { LineOfBusiness = lctp.LineOfBusiness, CurrentPremium = lctp.Premium, RenewalPremium = lptp.Premium }; var rightOuterJoin = from lptp in lobPriorTermPremiums join lctp in lobCurrentTermPremiums on lptp.LineOfBusiness equals lctp.LineOfBusiness into temp from lctp in temp.DefaultIfEmpty(new LOBPremium() { LineOfBusiness = lptp.LineOfBusiness, Premium = null }) select new { LineOfBusiness = lptp.LineOfBusiness, CurrentPremium = lctp.Premium, RenewalPremium = lptp.Premium }; var fullOuterJoin = leftOuterJoin.Union(rightOuterJoin); var groupedLinedOfBusiness = from lob in fullOuterJoin.OrderBy(lobPremium => lobPremium.LineOfBusiness) group lob by lob.LineOfBusiness into grouped select new { CurrentPremium = String.Format("{0} - ${1}", grouped.Key, grouped.Max(l => l.CurrentPremium).ToString()), RenewalPremium = String.Format("{0} - ${1}", grouped.Key, grouped.Max(l => l.RenewalPremium).ToString()) }; if (contractDetailResponse.MultilineLOBContract.LOBPriorTermPremiums != null && contractDetailResponse.MultilineLOBContract.LOBPriorTermPremiums.Count > 0) { ((RadGrid)source).Columns.FindByUniqueName("RenewalPremium").Visible = true; } if (contractDetailResponse.MultilineLOBContract.LOBCurrentTermPremiums != null && contractDetailResponse.MultilineLOBContract.LOBCurrentTermPremiums.Count > 0) { ((RadGrid)source).Columns.FindByUniqueName("CurrentPremium").Visible = true; } ((RadGrid)source).DataSource = groupedLinedOfBusiness.AsQueryable(); return; } } /// <summary> /// This event is called when the user clicks on the item rows on the MainGrid. /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void GridResult_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == RadGrid.ExpandCollapseCommandName && e.Item is GridDataItem) { GridDataItem item = e.Item as GridDataItem; item.ChildItem.FindControl("InnerContainer").Visible = !e.Item.Expanded; contractId = item["ContractId"].Text; lineOfBusiness = item["LineOfBusiness"].Text; if (!item.Expanded) { GridNestedViewItem nestedItem = (GridNestedViewItem)item.ChildItem; RadGrid tempGrid = (RadGrid)nestedItem.FindControl("additionalInfoGrid"); tempGrid.Rebind(); tempGrid = (RadGrid)nestedItem.FindControl("coverageDetailsGrid"); tempGrid.Rebind(); } } }Questions: How do i register Client Events? I tried doing in Page_Load, but system threw an exception because it is not able to find getCurrent(this.page)
I want to export with "ExportOnlydata" = true and "IgnorePaging" = true, In doing so i get excpetion, which i think is because child grid data is not available (since it gets loaded only on Grid ItemCommand event).
I would really appreciate if you could look into my code and suggest me how to implement "Export to excel" functionality in this case.
Thanks,
-Rajesh