У меня есть функция для экспорта некоторых данных из GridView
в Excel, которые связаны с некоторыми флажками. Таким образом, он экспортирует только проверенные строки. Это прекрасно работает, однако я не могу отключить пейджинг для экспорта? Это мой код:Отключить пейджинг в GridView для экспорта Excel
private void ExportGridToExcel()
{
bool isSelected = false;
foreach (GridViewRow i in GridView1.Rows)
{
CheckBox cb = (CheckBox)i.FindControl("chkSelect");
if (cb != null && cb.Checked)
{
isSelected = true;
break;
}
}
if (isSelected)
{
GridView gvExport = GridView1;
// this below line for not export checkbox to excel file
gvExport.Columns[0].Visible = false;
foreach (GridViewRow i in GridView1.Rows)
{
gvExport.Rows[i.RowIndex].Visible = false;
CheckBox cb = (CheckBox)i.FindControl("chkSelect");
if (cb != null && cb.Checked)
{
gvExport.Rows[i.RowIndex].Visible = true;
}
}
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=ExportGridData.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htW = new HtmlTextWriter(sw);
Response.ContentEncoding = System.Text.Encoding.Unicode;
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
Response.Cache.SetCacheability(HttpCacheability.NoCache);
gvExport.AllowPaging = false;
gvExport.RenderControl(htW);
Response.Output.Write(sw.ToString());
Response.End();
}
}
protected void Button3_Click(object sender, EventArgs e)
{
ExportGridToExcel();
}
Как вы можете видеть, я установил AllowPaging = false
, но номера страниц все еще видны в экспортируемый файл. Кто-нибудь понял, почему?
Да, это работает, когда я делаю DataBind однако я пытаюсь экспортировать только данные с галочкой так, когда я делаю что DataBind функциональность теряется – MariaL
, но значение 'checked' хранится в базе данных? поэтому вы можете экспортировать 'db.YourData.Where (x => x.export)' или sth? – fubo