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