I am trying to export data to Excel. And I have GridView with paging enabled. When I download data using HtmlTextWriter it give download only to visible record in GridView. Can we download all the record in single excel file? And also downloaded-data should be with the same sorted state as sorted in GridView?
Client Source code
<asp:GridView ID="gvDetailFleet" runat="server" DataSourceID="SqlDataSource2" AllowPaging="false" AllowSorting="True" AutoGenerateColumns="true" DataKeyNames="OracleId" CellPadding="4" ForeColor="#333333" GridLines="None" > <RowStyle BackColor="#EFF3FB" /> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> Here is Server Side
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 System.Data.SqlClient; using System.IO; public partial class FleetReportWithoutVehicle : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { btnFleetReportWithoutVehicle.Visible = false; } } protected void btnSearch_Click(object sender, EventArgs e) { btnFleetReportWithoutVehicle.Visible = true; } protected void btnExportSalary_Click(object sender, EventArgs e) { Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "AttendanceFollowUpReport.xls")); Response.ContentType = "application/ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gvDetailFleet.AllowPaging = false; gvDetailFleet.HeaderRow.Style.Add("background-color", ""); for (int i = 0; i < gvDetailFleet.HeaderRow.Cells.Count; i++) { gvDetailFleet.HeaderRow.Cells[i].Style.Add("background-color", ""); } gvDetailFleet.RenderControl(htw); Response.Write(sw.ToString()); Response.Flush(); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { } }