or
protected
void
RadGridInventory_GridExporting(
object
source, GridExportingArgs e)
{
foreach
(GridDataItem item
in
RadGridInventory.MasterTableView.Items)
{
item[
"AccountId"
].Text = (item.FindControl(
"lControl"
)
as
HyperLink).Text; //returns null
item[
"Status"
].Text = (item.FindControl(
"statusCode"
)
as
LiteralControl).Text; //returns null
}
if
(e.ExportType == ExportType.Excel)
{
string
customText =
"<h1 style='text-align:center;'>Inventory Report for "
+ _applicationUser.Customer.Name +
"</h1>"
;
customText +=
"<p style='text-align:center;'><b>Current Date:</b> "
+ DateTime.Now +
"<br />"
;
if
(RadDatePickerStarting.SelectedDate !=
null
&& RadDatePickerEnding.SelectedDate !=
null
){
customText +=
"<b>Date Range Covered:</b> "
+ RadDatePickerStarting.SelectedDate +
" - "
+ RadDatePickerEnding.SelectedDate +
"<br />"
;
}
else
{
customText +=
"<b>Date Range Covered:</b> "
+ RadComboBoxChoices.SelectedItem.Text +
"<br />"
;
}
customText +=
"<b>Clients:</b>"
;
foreach
(var client
in
ClientSelector1.SelectedClients)
{
customText +=
" "
+ client.Name +
","
;
}
customText = customText.TrimEnd(
','
);
customText +=
"</p>"
;
e.ExportOutput = e.ExportOutput.Replace(
"<body>"
,
"<body>"
+ customText);
}
}
public
void
BuildGrid(IList<UserReportColumn> userReportColumns)
{
RadGridInventory.FilterMenu.EnableEmbeddedSkins =
false
;
RadGridInventory.PreRender += RadGridInventory_PreRender;
RadGridInventory.EnableLinqExpressions =
false
;
RadGridInventory.AllowFilteringByColumn =
true
;
RadGridInventory.AllowPaging =
true
;
RadGridInventory.AllowSorting =
true
;
RadGridInventory.GridLines = GridLines.None;
RadGridInventory.ShowGroupPanel =
true
;
RadGridInventory.AutoGenerateColumns =
false
;
RadGridInventory.CssClass =
"RadGridAccounts"
;
RadGridInventory.EnableViewState =
false
;
RadGridInventory.Width = Unit.Pixel(1090);
RadGridInventory.EnableEmbeddedSkins =
false
;
RadGridInventory.ClientSettings.AllowDragToGroup =
true
;
RadGridInventory.ClientSettings.Resizing.AllowColumnResize =
true
;
RadGridInventory.ClientSettings.Resizing.AllowRowResize =
true
;
RadGridInventory.ClientSettings.Resizing.ResizeGridOnColumnResize =
true
;
RadGridInventory.ClientSettings.Resizing.ClipCellContentOnResize =
true
;
RadGridInventory.ClientSettings.Resizing.EnableRealTimeResize =
false
;
RadGridInventory.ClientSettings.Resizing.ShowRowIndicatorColumn =
false
;
RadGridInventory.PagerStyle.Mode = GridPagerMode.NextPrevAndNumeric;
RadGridInventory.ExportSettings.HideStructureColumns =
true
;
RadGridInventory.ExportSettings.ExportOnlyData =
true
;
RadGridInventory.ExportSettings.IgnorePaging =
true
;
RadGridInventory.MasterTableView.DataKeyNames =
new
string
[] {
"AccountId"
};
RadGridInventory.MasterTableView.ClientDataKeyNames =
new
string
[] {
"AccountId"
};
RadGridInventory.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top;
RadGridInventory.MasterTableView.CommandItemSettings.ShowExportToExcelButton =
true
;
RadGridInventory.MasterTableView.CommandItemSettings.ShowExportToCsvButton =
true
;
RadGridInventory.MasterTableView.CommandItemSettings.ShowAddNewRecordButton =
false
;
RadGridInventory.GridExporting +=
new
OnGridExportingEventHandler(RadGridInventory_GridExporting);
RadGridInventory.MasterTableView.Width = Unit.Percentage(100);
var accountColumn = userReportColumns.FirstOrDefault(x => x.ReportColumn.ColumnName ==
"AccountId"
);
if
(accountColumn !=
null
)
{
var templateColumn =
new
GridTemplateColumn();
RadGridInventory.MasterTableView.Columns.Add(templateColumn);
templateColumn.ItemTemplate =
new
AccountColumnTemplate(
"AccountId"
);
templateColumn.DataField =
"AccountId"
;
templateColumn.SortExpression =
"AccountId"
;
templateColumn.UniqueName =
"AccountId"
;
templateColumn.GroupByExpression =
"Group By AccountId"
;
templateColumn.HeaderText = accountColumn.ColumnHeaderEval;
}
foreach
(var column
in
userReportColumns)
{
if
(column.ReportColumn.ColumnName ==
"AccountId"
)
continue
;
if
(column.ReportColumn.ColumnName ==
"Status"
)
continue
;
var boundColumn =
new
GridBoundColumn();
RadGridInventory.MasterTableView.Columns.Add(boundColumn);
AccountGridHelpers.SetupBoundColumn(boundColumn, column);
}
var statusColumn = userReportColumns.FirstOrDefault(x => x.ReportColumn.ColumnName ==
"Status"
);
if
(statusColumn !=
null
)
{
var statusTemplateColumn =
new
GridTemplateColumn();
RadGridInventory.MasterTableView.Columns.Add(statusTemplateColumn);
statusTemplateColumn.ItemTemplate =
new
StatusColumnTemplate(
"Status"
);
statusTemplateColumn.DataField =
"Status"
;
statusTemplateColumn.UniqueName =
"Status"
;
statusTemplateColumn.AllowFiltering =
true
;
statusTemplateColumn.SortExpression =
"Status"
;
statusTemplateColumn.HeaderText = statusColumn.ColumnHeaderEval;
}
}
public
class
AccountColumnTemplate : ITemplate
{
protected
HyperLink lControl;
private
string
_colname;
public
AccountColumnTemplate(
string
cName)
{
_colname = cName;
}
public
void
InstantiateIn(System.Web.UI.Control container)
{
lControl =
new
HyperLink {ID =
"lControl"
};
lControl.DataBinding += lControl_DataBinding;
container.Controls.Add(lControl);
}
public
void
lControl_DataBinding(
object
sender, EventArgs e)
{
var l = (HyperLink)sender;
var container = (GridDataItem)l.NamingContainer;
l.Attributes[
"href"
] =
"/Secure/AccountDetail.aspx?account="
+ ((AccountDtoBase)container.DataItem).AccountId;
l.Text = ((AccountDtoBase)container.DataItem).AccountId;
}
}