Hi Team,
I have a hierarchical radgrid and I want to export it to Excel
I have 2 problems exporting it .
1. I am exporting it on button_Click (button outside the grid).
My page has RadAjaxPanel . So when I click the button, it doesn't export it to excel.
2. I want to format it .
I want to add some header with values from dropdown on my page.
Attaching image of the grid and below is my page and MasterPage
MainMaster.master :::
page.aspx :::
This is Button_Click
Waiting for your positive reply,
Thanks,
Lok..
Please refere excel_format_001.png file..
its an updated image.
I have a hierarchical radgrid and I want to export it to Excel
I have 2 problems exporting it .
1. I am exporting it on button_Click (button outside the grid).
My page has RadAjaxPanel . So when I click the button, it doesn't export it to excel.
2. I want to format it .
I want to add some header with values from dropdown on my page.
Attaching image of the grid and below is my page and MasterPage
MainMaster.master :::
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MainMasterPage.master.cs" Inherits="AceFinance.MainMasterPage" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
id
=
"Head1"
runat
=
"server"
>
<
title
>Ace Finance</
title
>
</
head
>
<
body
class
=
"bodymaster"
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"ScriptManager"
runat
=
"server"
AsyncPostBackTimeout
=
"1500"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManagerMaster"
runat
=
"server"
EnableAJAX
=
"true"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"rmFinanceMenu"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"rmFinanceMenu"
LoadingPanelID
=
"AjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
runat
=
"server"
ID
=
"RadAjaxLoadingPanel1"
Skin
=
"Default"
/>
<
asp:Panel
runat
=
"server"
ID
=
"Panel1"
CssClass
=
"menu-container"
>
// my code... menus, etc.
</
asp:Panel
>
</
form
>
</
body
>
</
html
>
page.aspx :::
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ManageGiroPayments.aspx.cs" Inherits="AceFinance.ManageGiroPayments" MasterPageFile="~/MainMasterPage.Master" Title="Giro Payments" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<
asp:Content
ID
=
"Content1"
ContentPlaceHolderID
=
"MainContentPlaceHolder"
runat
=
"server"
>
<
telerik:RadAjaxPanel
ID
=
"rjxPanel"
runat
=
"server"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
>
<
fieldset
>
<
asp:Label
ID
=
"lblGiroPayment"
runat
=
"server"
Text
=
"Giro Payments"
Font-Bold
=
"true"
CssClass
=
"ClsLabelHead"
/>
<
br
/> <
br
/>
<
table
width
=
"100%"
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"lblOrganization"
runat
=
"server"
Text
=
"Organization"
Font-Bold
=
"true"
/>
<
telerik:RadComboBox
ID
=
"rcbOrganization"
runat
=
"server"
OnSelectedIndexChanged
=
"rcbOrganization_SelectedIndexChanged"
AutoPostBack
=
"true"
Height
=
"140px"
/>
</
td
>
<
td
>
<
asp:Label
ID
=
"lblAccountNo"
runat
=
"server"
Text
=
"Account #"
Font-Bold
=
"true"
/>
<
telerik:RadComboBox
ID
=
"rcbBankAccount"
runat
=
"server"
/>
</
td
>
<
td
>
<
asp:Label
ID
=
"lblCostCenter"
runat
=
"server"
Text
=
"Cost Center"
Font-Bold
=
"true"
/>
<
telerik:RadComboBox
ID
=
"rcbCostCenter"
runat
=
"server"
Height
=
"140px"
/>
</
td
>
</
tr
>
<
tr
>
<
td
style
=
"width:100%"
colspan
=
"3"
>
<
telerik:RadGrid
ID
=
"rgGiroPayments"
runat
=
"server"
OnNeedDataSource
=
"rgGiroPayments_NeedDataSource"
AllowMultiRowSelection
=
"true"
>
<
MasterTableView
>
<
GroupByExpressions
>
<
telerik:GridGroupByExpression
>
<
SelectFields
>
<
telerik:GridGroupByField
FieldName
=
"EntityKeyName"
FieldAlias
=
"Vendor"
/>
</
SelectFields
>
<
GroupByFields
>
<
telerik:GridGroupByField
FieldName
=
"EntityKeyName"
FieldAlias
=
"Vednor"
/>
</
GroupByFields
>
</
telerik:GridGroupByExpression
>
</
GroupByExpressions
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"AP_InvoiceID"
HeaderText
=
"AP_InvoiceID"
Display
=
"false"
UniqueName
=
"AP_InvoiceID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"InvoiceNo"
HeaderText
=
"Invoice #"
DataType
=
"system.string"
UniqueName
=
"InvoiceNo"
FilterControlWidth
=
"75%"
SortExpression
=
"InvoiceNo"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"InvoiceDate"
HeaderText
=
"Date"
FilterControlWidth
=
"75%"
UniqueName
=
"InvoiceDate"
DataFormatString
=
"{0:d}"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"EntityID"
HeaderText
=
"EntityID"
Display
=
"false"
UniqueName
=
"EntityID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"EntityKeyID"
HeaderText
=
"EntityKeyID"
Display
=
"false"
UniqueName
=
"EntityKeyID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"EntityKeyName"
FilterControlWidth
=
"75%"
HeaderText
=
"EntityKeyName"
UniqueName
=
"EntityKeyName"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
Display
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"InvoiceCurrencyName"
HeaderText
=
"Currency"
UniqueName
=
"InvoiceCurrencyName"
FilterControlWidth
=
"50%"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
Display
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CurrencySymbol"
HeaderText
=
"Currency"
UniqueName
=
"CurrencySymbol"
FilterControlWidth
=
"50%"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"InvoiceAmount"
HeaderText
=
"Amount"
UniqueName
=
"InvoiceAmount"
FilterControlWidth
=
"50%"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
>
</
telerik:GridBoundColumn
>
<
telerik:GridTemplateColumn
HeaderText
=
"Paid Amount"
UniqueName
=
"PaidAmount"
>
<
ItemTemplate
>
<
asp:TextBox
ID
=
"txtPaidAmount"
runat
=
"server"
/>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
<
telerik:GridBoundColumn
DataField
=
"BalanceAmount"
HeaderText
=
"Due Amount"
UniqueName
=
"BalanceAmount"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
>
</
telerik:GridBoundColumn
>
<
telerik:GridClientSelectColumn
UniqueName
=
"Select"
>
</
telerik:GridClientSelectColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
Selecting-AllowRowSelect
=
"true"
></
ClientSettings
>
</
telerik:RadGrid
>
</
td
>
</
tr
>
<
tr
>
<
td
align
=
"center"
colspan
=
"3"
>
<
asp:Button
ID
=
"btnPayment"
runat
=
"server"
Text
=
"Make Payment"
OnClick
=
"btnPayment_Click"
Width
=
"100px"
/>
</
td
>
</
tr
>
</
table
>
</
fieldset
>
</
telerik:RadAjaxPanel
>
</
asp:Content
>
This is Button_Click
protected void btnPayment_Click(object sender, EventArgs e)
{
try
{
string InvoiceIDList = GlobalConstants.BLANK;
DataTable dt = new DataTable();
dt.Columns.Add("VendorID");
dt.Columns.Add("AP_InvoiceID");
dt.Columns.Add("InvoiceAmount");
dt.Columns.Add("PaidAmount");
APInvoices AllAPInvoices = APInvoices.GetAllInvoices(int.Parse(rcbOrganization.SelectedValue), UIHelper.GetCurrentUsersLanguageID());
foreach (GridDataItem item in rgGiroPayments.SelectedItems)
{
TextBox txtPaidAmount = item.FindControl("txtPaidAmount") as TextBox;
if (txtPaidAmount.Text == GlobalConstants.BLANK)
throw new Exception("Please enter Paid Amount for Invoice " + item["InvoiceNo"].Text);
if (double.Parse(txtPaidAmount.Text) > double.Parse(item["BalanceAmount"].Text))
throw new Exception("Paid Amount cannot be greater than Due Amount for Invoice " + item["InvoiceNo"].Text);
dt.Rows.Add(int.Parse(item["EntityKeyID"].Text), item["AP_InvoiceID"].Text, item["InvoiceAmount"].Text, txtPaidAmount.Text);
APInvoice AnAPInvoice = AllAPInvoices.GetItem(int.Parse(item["AP_InvoiceID"].Text));
AnAPInvoice.PaidAmount = double.Parse(txtPaidAmount.Text);
}
//AllAPInvoices.Save();
DataRow[] dr = dt.Select("", "VendorID");
for (int i = 0; i < dt.Rows.Count; i++)
{
InvoiceIDList = InvoiceIDList + dt.Rows[i]["AP_InvoiceID"].ToString() + ",";
}
// Export to Excel code here
rgGiroPayments.AllowSorting = false;
rgGiroPayments.AllowFilteringByColumn = false;
rgGiroPayments.ExportSettings.IgnorePaging = true;
//rgGiroPayments.ExportSettings.ExportOnlyData = true;
rgGiroPayments.MasterTableView.HierarchyDefaultExpanded = true;
rgGiroPayments.ExportSettings.OpenInNewWindow = true;
rgGiroPayments.MasterTableView.ExportToExcel();
Session["APInvoiceInfoList"] = null;
rgGiroPayments.Rebind();
}
catch (Exception ex)
{
XITingExceptionProcessor.ProcessException(this, ex);
}
}
Waiting for your positive reply,
Thanks,
Lok..
Please refere excel_format_001.png file..
its an updated image.