Hi,
I have a radGrid to which I am trying to export using standard radGrid export options. But I am have few issues as below:
1) Export to CSV is not giving me data.
2) Export to Excel is giving data with extra columns.
3) Export to PDF is giving data with extra columns.
I am using the following code to do the same. Please let me know what the issue is.
ExportRadGrid.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportRadGrid.aspx.cs" Inherits="ExportRadGrid" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="scrip" runat="server"></telerik:RadScriptManager>
<telerik:RadGrid ID="radGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true"
AllowSorting="true" AllowCustomPaging="true" PageSize="5" AllowFilteringByColumn="true"
Skin="Office2007">
<PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" />
</telerik:RadGrid>
<asp:Button ID="btnCSV" Text="CSV" runat="server" OnClick="btnCSV_Click"/>
<asp:Button ID="btnExcel" Text="Excel" runat="server" OnClick="btnExcel_Click"/>
<asp:Button ID="btnPDF" Text="PDF" runat="server" OnClick="btnPDF_Click"/>
</div>
</form>
</body>
</html>
ExportRadGrid.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Telerik.Web.UI;
public partial class ExportRadGrid : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GridTemplateColumn column1 = new GridTemplateColumn();
column1.UniqueName = "RollNo";
column1.HeaderText = "RollNo";
column1.ItemTemplate = new LabelTemplate("RollNo", string.Empty);
GridTemplateColumn column2 = new GridTemplateColumn();
column2.UniqueName = "Name";
column2.HeaderText = "Name";
column2.ItemTemplate = new LabelTemplate("Name", string.Empty);
GridTemplateColumn column3 = new GridTemplateColumn();
column3.UniqueName = "Address";
column3.HeaderText = "Address";
column3.ItemTemplate = new LabelTemplate("Address", string.Empty);
radGrid.MasterTableView.Columns.Add(column1);
radGrid.MasterTableView.Columns.Add(column2);
radGrid.MasterTableView.Columns.Add(column3);
radGrid.DataSource = GetDataTable();
radGrid.DataBind();
}
protected void btnCSV_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToCSV();
}
protected void btnExcel_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToExcel();
}
protected void btnPDF_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToPdf();
}
private void SetReportSettings()
{
this.radGrid.ExportSettings.ExportOnlyData = true;
this.radGrid.ExportSettings.IgnorePaging = true;
this.radGrid.ExportSettings.OpenInNewWindow = true;
}
private DataTable GetDataTable()
{
DataTable dt = new DataTable("MyTable");
dt.Columns.Add("RollNo");
dt.Columns.Add("Name");
dt.Columns.Add("Address");
DataRow dr1 = dt.NewRow();
dr1["RollNo"] = 1;
dr1["Name"] = "Mahesh";
dr1["Address"] = "Addr1";
DataRow dr2 = dt.NewRow();
dr2["RollNo"] = 1;
dr2["Name"] = "Kishore";
dr2["Address"] = "Addr2";
DataRow dr3 = dt.NewRow();
dr3["RollNo"] = 1;
dr3["Name"] = "Rajesh";
dr3["Address"] = "Addr3";
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
return dt;
}
}
public class LabelTemplate : ITemplate
{
public string DataField { get; set; }
public string DataFormat { get; set; }
private LabelTemplate()
{
}
public LabelTemplate(string dataField, string dataFormat)
{
DataField = dataField;
DataFormat = dataFormat;
}
#region ITemplate Members
public void InstantiateIn(Control container)
{
Label label = new Label();
label.DataBinding += new EventHandler(Label_DataBinding);
container.Controls.Add(label);
}
void Label_DataBinding(object sender, EventArgs e)
{
Label label = (Label)sender;
GridDataItem container = (GridDataItem)label.NamingContainer;
if (DataFormat != string.Empty)
label.Text = string.Format(DataFormat, ((DataRowView)container.DataItem)[DataField].ToString());
else
label.Text = ((DataRowView)container.DataItem)[DataField].ToString();
}
#endregion
}
Thanks,
Mahesh
I have a radGrid to which I am trying to export using standard radGrid export options. But I am have few issues as below:
1) Export to CSV is not giving me data.
2) Export to Excel is giving data with extra columns.
3) Export to PDF is giving data with extra columns.
I am using the following code to do the same. Please let me know what the issue is.
ExportRadGrid.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportRadGrid.aspx.cs" Inherits="ExportRadGrid" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="scrip" runat="server"></telerik:RadScriptManager>
<telerik:RadGrid ID="radGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true"
AllowSorting="true" AllowCustomPaging="true" PageSize="5" AllowFilteringByColumn="true"
Skin="Office2007">
<PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" />
</telerik:RadGrid>
<asp:Button ID="btnCSV" Text="CSV" runat="server" OnClick="btnCSV_Click"/>
<asp:Button ID="btnExcel" Text="Excel" runat="server" OnClick="btnExcel_Click"/>
<asp:Button ID="btnPDF" Text="PDF" runat="server" OnClick="btnPDF_Click"/>
</div>
</form>
</body>
</html>
ExportRadGrid.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Telerik.Web.UI;
public partial class ExportRadGrid : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GridTemplateColumn column1 = new GridTemplateColumn();
column1.UniqueName = "RollNo";
column1.HeaderText = "RollNo";
column1.ItemTemplate = new LabelTemplate("RollNo", string.Empty);
GridTemplateColumn column2 = new GridTemplateColumn();
column2.UniqueName = "Name";
column2.HeaderText = "Name";
column2.ItemTemplate = new LabelTemplate("Name", string.Empty);
GridTemplateColumn column3 = new GridTemplateColumn();
column3.UniqueName = "Address";
column3.HeaderText = "Address";
column3.ItemTemplate = new LabelTemplate("Address", string.Empty);
radGrid.MasterTableView.Columns.Add(column1);
radGrid.MasterTableView.Columns.Add(column2);
radGrid.MasterTableView.Columns.Add(column3);
radGrid.DataSource = GetDataTable();
radGrid.DataBind();
}
protected void btnCSV_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToCSV();
}
protected void btnExcel_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToExcel();
}
protected void btnPDF_Click(object sender, EventArgs e)
{
SetReportSettings();
radGrid.MasterTableView.ExportToPdf();
}
private void SetReportSettings()
{
this.radGrid.ExportSettings.ExportOnlyData = true;
this.radGrid.ExportSettings.IgnorePaging = true;
this.radGrid.ExportSettings.OpenInNewWindow = true;
}
private DataTable GetDataTable()
{
DataTable dt = new DataTable("MyTable");
dt.Columns.Add("RollNo");
dt.Columns.Add("Name");
dt.Columns.Add("Address");
DataRow dr1 = dt.NewRow();
dr1["RollNo"] = 1;
dr1["Name"] = "Mahesh";
dr1["Address"] = "Addr1";
DataRow dr2 = dt.NewRow();
dr2["RollNo"] = 1;
dr2["Name"] = "Kishore";
dr2["Address"] = "Addr2";
DataRow dr3 = dt.NewRow();
dr3["RollNo"] = 1;
dr3["Name"] = "Rajesh";
dr3["Address"] = "Addr3";
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
return dt;
}
}
public class LabelTemplate : ITemplate
{
public string DataField { get; set; }
public string DataFormat { get; set; }
private LabelTemplate()
{
}
public LabelTemplate(string dataField, string dataFormat)
{
DataField = dataField;
DataFormat = dataFormat;
}
#region ITemplate Members
public void InstantiateIn(Control container)
{
Label label = new Label();
label.DataBinding += new EventHandler(Label_DataBinding);
container.Controls.Add(label);
}
void Label_DataBinding(object sender, EventArgs e)
{
Label label = (Label)sender;
GridDataItem container = (GridDataItem)label.NamingContainer;
if (DataFormat != string.Empty)
label.Text = string.Format(DataFormat, ((DataRowView)container.DataItem)[DataField].ToString());
else
label.Text = ((DataRowView)container.DataItem)[DataField].ToString();
}
#endregion
}
Thanks,
Mahesh