У меня есть код для экспорта в Excel. В моем gridview я установил подкачку страниц для отображения количества записей в pagecount.
Но в моем экспорте в Excel это не дает мне все записи, вместо этого он показывает мне ту же подкачку страниц с шестью записями.
Мой код:
string attachment = "attachment; filename=Contacts.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
// Create a form to contain the grid
HtmlForm frm = new HtmlForm();
GrdDynamicControls.AllowPaging = false;
GrdDynamicControls.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(GrdDynamicControls);
frm.RenderControl(htw);
//GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
Как я изменяю или отключаю подкачку страниц для получения всех записей от моего gridview?
У меня есть числа в gridview как +9199, и т.д., но после экспорта его он показывает мне его в формате 9,99 и т.д.
Как я передаю formatcells в числах отсюда?
Вы можете экспортировать источник данных gridview (например, набор данных) в Excel.
Вот пример кода для этого. Вы можете обратиться к Howto: Экспорт набора данных в Excel (C # / ASP.NET) для получения дополнительной информации.
using System;
using System.Data;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Whatever
{
///
/// This class provides a method to write a dataset to the HttpResponse as
/// an Excel file.
///
public class ExcelExport
{
public static void ExportDataSetToExcel(DataSet ds, string filename)
{
HttpResponse response = HttpContext.Current.Response;
// First let's clean up the response.object.
response.Clear();
response.Charset = "";
// Set the response mime type for Excel.
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
// Create a string writer.
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// Instantiate a datagrid
DataGrid dg = new DataGrid();
dg.DataSource = ds.Tables[0];
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
response.End();
}
}
}
}
}
Я не знаком с ASP.NET , но считаю, что вы привязываете некоторый источник данных (dataTable или List <>) к вашей сетке. Экспортируйте источник данных вместо dataGrid.
Я считаю, что вам нужно будет заново привязать свою сетку после отключения разбиения по страницам, чтобы получить все свои записи.
Я также поддержу комментарий Орсола; куда вместо экспорта того, что находится в сетке; экспортировать источник данных.