29 messaggi dal 01 aprile 2008
Qualcuno sa dirmi se esiste un modo semplice e rapido per stampare i dati di un DataView?
dipy wrote:
Qualcuno sa dirmi se esiste un modo semplice e rapido per stampare i dati di un DataView?

DataView sarebbe una GridView?
stampare dove, sul client o sul server?

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
29 messaggi dal 01 aprile 2008
Si scusa, volevo dire GridView, dovrei fare la stampa lato server.
dipy wrote:
Si scusa, volevo dire GridView, dovrei fare la stampa lato server.

allora devi dare un'occhiata alla classe PrintDocument.
http://www.aspitalia.com/script/434/Stampare-Server-ASP.NET.aspx
non è facile mantenere la formattazione HTML, per cui la cosa migliore, se riesci, è passare attraverso un formato intermedio (XPS, PDF). prova cmq ad invocare il metodo RenderControl, come spiegato qui: http://www.aspitalia.com/script/590/Catturare-HTML-DataGrid-ASP.NET.aspx

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
29 messaggi dal 01 aprile 2008
ok , Grazie mille :-)
29 messaggi dal 01 aprile 2008
Ho provato con il metodo renderControl, ma mi da questo errore:

Il controllo 'ctl00_MasterBody_assCorsiGrid' di tipo 'GridView' deve essere inserito in un tag Form con runat=server.

In realtà è dentro un form con runat=server perchè se lo prende dalal master page, tant'è vero che se provo a chiuderlo in un form mi da un altro errore dicendo che nella pagina ci piò essere un solo tag form con runat=server.
Ti è già capitata questa situazione? non so come risolverla.
dipy wrote:
Ti è già capitata questa situazione? non so come risolverla.

dipende da quando lo invochi e come lo invochi. il mio consiglio è di fare una pagina ad hoc, senza usare la Master Page, così da diminuire la complessità della stessa ed uscirsene in maniera più rapida con una soluzione.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
29 messaggi dal 01 aprile 2008
Ho provato a mettere tutto su una pagina ad hoc. Al momento lo richiamo semplicemente all' OnCLick di un Button. Posto un po' di codice:

Il Form:


    <form id="form1" runat="server">
        <asp:GridView ID="assCorsiGrid" BorderStyle="Solid" BorderColor="#ff9900" BorderWidth="1" runat="server" DataSourceID="ObjectDataSource1" AllowPaging="True" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None">
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#ffe7c6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#ff9900" Font-Bold="True" ForeColor="#ffffff" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="ReportAssistenzaCorsi"
        TypeName="GestioneCompetenze.BL.ManageReport"></asp:ObjectDataSource>
    
        <asp:Button runat="server" ID="stampa" Text="stampa" OnClick="stampa_Click" />
    </form>





Il Metodo:

    protected void stampa_Click(object sender, EventArgs e)
    {
        StringWriter stringWriter = new StringWriter();
        HtmlTextWriter html = new HtmlTextWriter(stringWriter);
        assCorsiGrid.RenderControl(html);
    }


Purtroppo continuo ad avere sempre lo stesso errore.
Ho provato anche a forzarglielo in questo modo:

        StringWriter stringWriter = new StringWriter();
        HtmlTextWriter html = new HtmlTextWriter(stringWriter);
        HtmlForm form = new HtmlForm();
        Page.Controls.Add(form);
        form.Controls.Add(assCorsiGrid);
        form.RenderControl(html);


ma in questo caso mi dice che una pagina può contenere solo un tag Form del lato server

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.