Mcbaloo Ответов: 1

Как мне также экспортировать результат, возвращенный из моего поискового запроса


у меня есть gridview в моем asp.net веб-приложение. я хочу экспортировать записи в этом gridview в excel. Он отлично работает, когда я экспортирую все записи в excel. проблема, с которой я сейчас сталкиваюсь, заключается в том, что у меня есть выпадающий список(для поиска по именам внутри gridview), текстовое поле и кнопка отправки как раз около gridview. Я заполнил gridview на основе результата, возвращенного из базы данных. я также хочу экспортировать эти записи в excel. каждый раз, когда я нажимаю кнопку " Выполнить поиск "и нажимаю кнопку" экспортировать в excel", все записи, сохраненные в моей БД, экспортируются. я только хочу, чтобы записи, возвращенные с моей кнопки поиска, также были экспортированы

Что я уже пробовал:

вот мой код для экспорта в excel. Как я уже сказал, он отлично работает, когда я хочу экспортировать все записи в gridview в excel
частный недействительными ExportGridToExcel()
{

Ответ.Четкий();

Ответ.ClearContent();
Ответ.ClearHeaders();

string FileName = "Example" + DateTime.Теперь + ". xls";
StringWriter Writer = новый StringWriter();
HtmlTextWriter html = новый HtmlTextWriter(writter);
Ответ.ContentType = " application/vnd. ms-excel";
Ответ.AddHeader ("Content-Disposition"," attachment, filename " + FileName);
Управления gridview1.HeaderStyle.Шрифт.Жирный = истина;
Управления gridview1.AllowPaging = false;

поиск.BindData();
Управления gridview1.Источник данных = поиск.таблица;
Управления gridview1.Привязку();
Управления gridview1.RenderControl(HTML-код);
Ответ.Писать(писателю.Метод toString());
Ответ.Конец();
}
охраняемых недействительными Bexcel_Click(объект отправителя, EventArgs в электронной)
{
ExportGridToExcel();
}
Как мне изменить это, чтобы также экспортировать записи, возвращенные из моего поискового запроса

Vincent Maverick Durano

Вам просто нужно изменить источник данных вашего GridView с помощью набора результатов поиска.

1 Ответов

Рейтинг:
4

manu_dhobale

Получите искомый datatable и используйте его для экспорта

protected void Bexcel_Click(object sender, EventArgs e)
{
    DataTable table = GetSearchedData();
    ExportGridToExcel(table);
}


private void ExportGridToExcel(DataTable table)
{

    Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();

    string FileName = "Example" + DateTime.Now + ".xls";
    StringWriter writter = new StringWriter();
    HtmlTextWriter html = new HtmlTextWriter(writter);
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("Content-Disposition", "attachment,filename" + FileName);
    GridView1.HeaderStyle.Font.Bold = true;
    GridView1.AllowPaging = false;

    GridView1.DataSource = table;
    GridView1.DataBind();
    GridView1.RenderControl(html);
    Response.Write(writter.ToString());
    Response.End();
}


Mcbaloo

Спасибо за помощь. я отредактировал ваше решение, чтобы выполнить то, что мне было нужно. Решение, которое вы дали, было идеальным. Код теперь работает отлично. спасибо