代码之家  ›  专栏  ›  技术社区  ›  Ali Ersöz

将网格导出到Excel时出现问题

  •  0
  • Ali Ersöz  · 技术社区  · 15 年前

    我正在尝试将数据报导出到Excel文件。它正确转换asp:boundColumn,但无法转换带有LinkButton或ImageButton的模板列。这些单元格转换为空单元格。

    这是将控件导出到Excel的代码。

    Public Shared Sub Export(ByVal Mime As String, ByVal Filename As String, ByVal Response As HttpResponse, ByVal Control As Control)
    
        Dim stringWrite As New System.IO.StringWriter()
        Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)
        Response.Clear()
        Response.Buffer = True
        Response.Charset = String.Empty
        Response.ContentType = Mime
        Response.AddHeader("Content-Disposition", "filename=" & Filename)
        Control.RenderControl(htmlWrite)
        Response.Write("<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""><html xmlns=""http://www.w3.org/1999/xhtml""><head id=""Head1"" runat=""server""><meta http-equiv=""content-type"" content=""text-html; charset=utf-8""></head><body>" & stringWrite.ToString & "</body></html>")
        Response.End()
    End Sub
    

    问题可能在哪里?有什么想法吗? 事先谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   patmortech    15 年前

    基本上,问题在于在服务器端窗体之外呈现非文本控件。

    这里有几篇文章关注于使用一个网格视图来实现这一点,但是也应该可以使用一个数据网格。要查看的主要内容是它们在呈现网格之前调用的函数,该函数通过网格中的控件并将任何链接按钮等转换为文本。

    第1条: A simpler, more "hard-coded" way, specifically for LinkButtons and Dropdownlists (朝底部看 解除控制权 函数

    第2条: A more robust and flexible method to deal with different types of controls