首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将网格视图内容导出到Excel、div和asp:content时遇到的问题

问将网格视图内容导出到Excel、div和asp:content时遇到的问题
EN

Stack Overflow用户
提问于 2013-11-22 15:28:08
回答 1查看 2K关注 0票数 0

我有以下问题,直到昨天,我的web应用程序还在正常工作,我在我的内容页面中(everything ):

  • 查询按钮,这些按钮将结果显示在我仅有的网格视图中。
  • 导出到excel按钮,该按钮将网格视图内容导出到Excel
  • 将网格视图作为电子邮件附件发送的电子邮件按钮

在我的母版页上,我有一个div类,它有asp:content,然后在我的内容页上,我用母版页上占位符的id调用asp: content,内容页的这个部分包含布斯按钮和网格视图,但是,由于我的查询显示了数千条记录,所以我希望使网格视图在高度上可以滚动。

为此,我创建了另一个div类,这个类包含所有内容,给它命名,在css上固定它的大小并使其可滚动,然后在可滚动asp:content部分中拖动gridview。gridview显示查询结果很好,它可以像我想要的那样滚动,但是,当我尝试将网格视图内容导出到excel或用excel附件发送电子邮件时,excel在这两种情况下都是空的,我没有将导出更改为excel按钮,什么会破坏导出呢?

我要发布相关的代码:

excel按钮

代码语言:javascript
复制
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*/
}

包含按钮和网格视图的母版页部分。

代码语言:javascript
复制
<div class="span8"><asp:ContentPlaceHolder ID="rightcontent" runat="server"></asp:ContentPlaceHolder></div><div class="scrollable"><asp:ContentPlaceHolder ID="rightcontentdown" runat="server"></asp:ContentPlaceHolder></div>

包含按钮和网格视图的内容页部分,这里有一个表单标记,标签会导致导出不能正常工作吗?

​

​

EN

回答 1

Stack Overflow用户

发布于 2013-11-22 15:37:36

我认为您在绑定网格视图之前调用了Buttonexcel_Click事件,或者绑定方法在(!Page.Postback)中,但是在这里尝试下面的代码,我将再次在单击事件.and按钮中填充网格视图,然后将其导出到excel。

尝尝这个

代码语言:javascript
复制
      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();
                    }
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20148483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档