Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    errore su esporta gridview in excell

    salve ragazzi ricevo quest'errore dopo aver popolato una gridview con i dati provenienti da database
    è strano perchè dg che è l'ìid della g.view sta con runat=server
    sto impazzendo ho provato mille soluzioni nn riesco a far funzionare l'esportazione dei dati con excell
    ho xp con IIS 5

    ERRORE:
    \\\\\\\\\\\

    Dettagli eccezione: System.Web.HttpException: Il controllo 'dg' di tipo 'GridView' deve essere inserito in un tag Form con runat=server.

    Errore nel codice sorgente:


    Riga 17: System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    Riga 18: this.ClearControls(dg);
    Riga 19: dg.RenderControl(oHtmlTextWriter);
    Riga 20: Response.Write(oStringWriter.ToString());
    Riga 21: Response.End();

    \\\\\\\\\\\


    questo è il codice
    mi aiutate per favore? sono giorni che c sbatto la testa
    mi rimani solo di licenziarmi

    <%@ Page language="C#" Debug="true" %>
    <%@ Import Namespace="System.Drawing" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.SqlClient" %>

    <script runat="server">
    private void Button1_Click(object sender, System.EventArgs e)
    {
    //export to excel
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
    Response.Buffer= true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.Charset = "";
    this.EnableViewState = false;
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    this.ClearControls(dg);
    dg.RenderControl(oHtmlTextWriter);
    Response.Write(oStringWriter.ToString());
    Response.End();
    }
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!IsPostBack)
    {
    SqlConnection conn = new SqlConnection("data source=xxxx;initial catalog=xxxx;Integrated Security=True");
    SqlCommand cmd = new SqlCommand("Select * from xxxx", conn);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    dg.DataSource = ds.Tables[0];
    dg.DataBind();
    }
    }
    private void ClearControls(Control control)
    {
    for (int i=control.Controls.Count -1; i>=0; i--)
    {
    ClearControls(control.Controls[i]);
    }
    if (!(control is TableCell))
    {
    if (control.GetType().GetProperty("SelectedItem") != null)
    {
    LiteralControl literal = new LiteralControl();
    control.Parent.Controls.Add(literal);
    try
    {
    literal.Text = (string)control.GetType().GetProperty("SelectedIte m").GetValue(control,null);
    }
    catch
    {
    }
    control.Parent.Controls.Remove(control);
    }
    else
    if (control.GetType().GetProperty("Text") != null)
    {
    LiteralControl literal = new LiteralControl();
    control.Parent.Controls.Add(literal);
    literal.Text = (string)control.GetType().GetProperty("Text").GetV alue(control,null);
    control.Parent.Controls.Remove(control);
    }
    }
    return;
    }
    </script>
    <html runat="server">
    <body runat="server" leftmargin="0" topmargin="0">

    <form id="frm" runat="server">






    <asp:GridView ID="dg" runat="server" AutoGenerateEditButton="True" AutoGenerateSelectButton="True" >
    </asp:GridView>
    <asp:Button id="Button1" runat="server" Text="Export to Excel"
    OnClick="Button1_Click"></asp:Button>
    </form>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    Ciao!
    e' un problema noto...
    dal sito di microsoft, consigliano questa soluzione:


    Form1.Controls.Clear();
    Form1.Controls.Add(dgExceptions);
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    HtmlTextWriter htWriter = new HtmlTextWriter(new System.IO.StringWriter(sb));
    Form1.RenderControl(htWriter);

    spero ti sia di aiuto!!
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  3. #3
    grazie per la risposta...
    pardon per il mio ritardo

    adesso l'errore che ricevo è questo qui

    Errore server nell'applicazione '/magazzino'.
    --------------------------------------------------------------------------------

    System.Web.HttpException: Una pagina può contenere solo un tag Form del lato server.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.