У меня есть следующая проблема: до вчерашнего дня мое веб-приложение работало отлично, у меня/было на моей странице содержания (все работало):
На моей главной странице у меня есть div-класс с asp: contentplaceholder, а затем на моей странице содержимого я вызываю asp: content с идентификатором заполнителя на главной странице, этот раздел на странице содержания содержал кнопки, а также gridview, однако, поскольку мои запросы отображают тысячи записей, я хотел бы сделать gridview прокручиваемым по высоте.
для этого я создал еще один класс div, один из которых содержал все, дал ему имя, а на css исправил его размер и сделал прокруткой, а затем перетащил gridview внутри прокручиваемой секции asp: content. gridview отображает результаты запроса просто отлично, и он прокручивается так же, как я хотел, однако, когда я пытаюсь экспортировать содержимое gridview, чтобы преуспеть или отправить электронное письмо с вложением excel, excel в обоих случаях пуст, я не изменил экспорт в Excel, что может испортить экспорт?
Я собираюсь опубликовать соответствующий код:
кнопка excel
protected void Buttonexcel_Click(object sender, EventArgs e)
{
try
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
Response.AddHeader("content-disposition", "attachment;filename=dados.xls");
StringWriter sWriter = new StringWriter();
HtmlTextWriter hWriter = new HtmlTextWriter(sWriter);
GridView1.RenderControl(hWriter);
Response.Output.Write(sWriter.ToString());
Response.Flush();
Response.End();
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered, tem a ver com o botão de exportação para excel*/
}
раздел главной страницы, содержащий как кнопки, так и сетку
<div class="span8"><asp:ContentPlaceHolder ID="rightcontent" runat="server"></asp:ContentPlaceHolder></div><div class="scrollable"><asp:ContentPlaceHolder ID="rightcontentdown" runat="server"></asp:ContentPlaceHolder></div>
разделы содержания, содержащие кнопки и gridview, у меня есть тег формы здесь, может ли тег привести к тому, что экспорт не работает правильно?
Ну, я думаю, что вы вызываете событие Buttonexcel_Click
прежде чем связывать свой gridview или ваш метод Binding внутри (! Page.Postback). Однако попробуйте код ниже здесь. Я снова заполняю gridview в событии нажатия кнопки, а затем экспортирую его в excel.
Попробуй это
string attachment = "attachment; filename=xxxx" + DateTime.Now + ".xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
datatable dt = new datatable();
// dt = Your query to get result
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
GridView1.DataSource = dt;//Bind your gridview
GridView1.DataBind();
dg.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
}
Buttonexcel_Click
если он пуст?