【发布时间】:2013-11-22 15:28:08
【问题描述】:
我有以下问题,直到昨天我的网络应用程序运行良好,我的内容页面中有/有(一切正常):
- 将结果显示到我拥有的唯一网格视图中的查询按钮
- 将 gridview 内容导出到 Excel 的导出到 excel 按钮
- 将网格视图作为电子邮件附件发送的电子邮件按钮
在我的母版页上,我有一个带有 asp:contentplaceholder 的 div 类,然后在我的内容页上,我用母版页上占位符的 id 调用 asp:content,内容页上的这一部分包含按钮然而,除了 gridview 之外,由于我的查询显示了数千条记录,我想让 gridview 在高度上可滚动。
为了实现这一点,我在包含所有内容的下面创建了另一个 div 类,为其命名并在 css 上固定它的大小并使其可滚动,然后我将 gridview 拖到可滚动的 asp:content 部分内。 gridview 显示查询结果很好,它可以像我想要的那样滚动,但是,当我尝试将 gridview 内容导出到 excel 或发送带有 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>
包含按钮和网格视图的内容页面部分,我在这里有一个表单标签,该标签会导致导出无法正常工作吗?
【问题讨论】:
-
如果它是空的,你能在
Buttonexcel_Click事件中检查你的gridview吗? -
@suraj singh,我如何检查 gridview 是否为空?
-
如果我输入那段代码我得到错误'System.Web.UI.WebControls.GridViewRowCollection'不包含'Count'的定义并且没有扩展方法'Count'接受第一个可以找到类型为“System.Web.UI.WebControls.GridViewRowCollection”的参数(您是否缺少 using 指令或程序集引用?)也许我没有将它放在正确的位置或者它缺少什么?
-
我很抱歉我的错误......使用这个
int rowCount = Convert.ToInt32(GridView1.Rows.Count);
标签: c# asp.net excel html gridview