Datagrid Übergabe an Excel

  • VB.NET (ASP)

    Datagrid Übergabe an Excel

    Hallo,

    ich möchte ein Gridview an Ecel übergeben:

    VB.NET-Quellcode

    1. Protected Sub DownloadBTN_Click(sender As Object, e As EventArgs) Handles DownloadBTN.Click
    2. Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
    3. Response.Charset = String.Empty
    4. Response.ContentType = "application/vnd.xls"
    5. Dim sw As System.IO.StringWriter = New System.IO.StringWriter()
    6. Dim hw As System.Web.UI.HtmlTextWriter = New HtmlTextWriter(sw)
    7. GridView1.RenderControl(hw)
    8. Response.Write(sw.ToString())
    9. Response.End()
    10. End Sub


    VB.NET-Quellcode

    1. <body>
    2. <form id="form1" runat="server">
    3. <div>
    4. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    5. DataKeyNames="LEISTUNGSNUMMER" DataSourceID="SqlDataSource1"
    6. EnableModelValidation="True">
    7. <Columns>
    8. <asp:BoundField DataField="LEISTUNGSNUMMER" HeaderText="LEISTUNGSNUMMER"
    9. ReadOnly="True" SortExpression="LEISTUNGSNUMMER" />
    10. <asp:BoundField DataField="LEISTUNGTEXT" HeaderText="LEISTUNGTEXT"
    11. SortExpression="LEISTUNGTEXT" />
    12. <asp:BoundField DataField="LEISTUNGSKENNZIFFER"
    13. HeaderText="LEISTUNGSKENNZIFFER" SortExpression="LEISTUNGSKENNZIFFER" />
    14. <asp:BoundField DataField="LEISTUNGENANZAHL" HeaderText="LEISTUNGENANZAHL"
    15. SortExpression="LEISTUNGENANZAHL" />
    16. </Columns>
    17. </asp:GridView>
    18. <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    19. ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>"
    20. ProviderName="<%$ ConnectionStrings:ConnectionString2.ProviderName %>"
    21. SelectCommand="SELECT &quot;LEISTUNGSNUMMER&quot;, &quot;LEISTUNGTEXT&quot;, &quot;LEISTUNGSKENNZIFFER&quot;, &quot;LEISTUNGENANZAHL&quot; FROM &quot;LEISTUNGEN&quot;">
    22. </asp:SqlDataSource>
    23. </div>
    24. <p>
    25. <asp:LinkButton ID="DownloadBTN" runat="server">Excel</asp:LinkButton>
    26. </p>
    27. </form>


    nun bekomme ich den Fehler:
    Das Steuerelement GridView1 vom Typ GridView muss in einem Formulartag mit runat=server positioniert werden.

    aber das Steuerelement steht doch in Form-Tags.

    Was läuft hier schief?

    Vielen Dank!

    Edit:
    wenn ich das hier noch einfüge funktionierts ... verstehen tu ichs aber nicht ;)

    VB.NET-Quellcode

    1. Public Overloads Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
    2. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nemesis“ ()