Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    Errore recuperando innerHtml di un controllo

    Ottengo l'errore
    Impossibile ottenere il contenuto interno di testata perché non è in formato letterale

    facendo questa operazione
    testomail &= DirectCast(testata, HtmlGenericControl).InnerHtml & "<br />"secondo voi perchè? (il primo che mi risponde "perchè non è in formato letterale" verrà pubblicamente oltraggiato )
    Testata è l'ID di un div html con l'attributo runat=server: contiene codice html, una tabella, css in linea, e altre amenità.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Quote Originariamente inviata da supermac Visualizza il messaggio
    Ottengo l'errore
    Impossibile ottenere il contenuto interno di testata perché non è in formato letterale

    facendo questa operazione
    testomail &= DirectCast(testata, HtmlGenericControl).InnerHtml & "<br />"secondo voi perchè? (il primo che mi risponde "perchè non è in formato letterale" verrà pubblicamente oltraggiato )
    Testata è l'ID di un div html con l'attributo runat=server: contiene codice html, una tabella, css in linea, e altre amenità.
    Bah! ho provato con
    Dim s As String = Me.testata.InnerHtml
    e va

    Col codice che hai mandato, l'unico che può darti una risposta è il nostro Moderatore (se non è andato al mare , ma anche in quel caso dovrebbe essere connesso )
    Pietro

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    Col codice che hai mandato...
    questo è il div testata... i vari controlli aspx li valorizzo da codebehind
    codice:
    <div id="testata" runat="server" style="background-color: #FFF; border-radius: 15px; padding: 20px 20px 1px 20px;">
                        <table class="table" style="width: 100%; background-color: #FFF;">
                            <tr>
                                <td style="width: 15%;"><b>Cliente</b></td>
                                <td style="width: 35%;">
                                    <asp:Label ID="r_cliente" runat="server" Text=""></asp:Label>
                                    <asp:HiddenField ID="hidordine" runat="server" Value="0" />
                                    <asp:HiddenField ID="mailcliente" runat="server" Value="" />
    
                                </td>
    
                                <td style="width: 15%;"><b>Destinazione merce</b></td>
                                <td style="width: 35%;">
                                    <asp:Label ID="r_destinazione" runat="server" Text=""></asp:Label></td>
                            </tr>
                            <tr>
                                <td><b>Cond. di pagamento</b></td>
                                <td>
                                    <asp:Label ID="r_pag" runat="server" Text=""></asp:Label>
                                </td>
                                <td><b>Consegna</b> (indicativa)</td>
                                <td>
                                    <asp:Label ID="r_cons" runat="server" Text=""></asp:Label></td>
                            </tr>
                            <tr>
                                <td><b>Relativo al brand:</b><br />
                                    <b>Collezione:</b><br />
                                    <b>Note:</b>
                                </td>
                                <td colspan="3">
                                    <asp:Label ID="r_summary" runat="server" Text=""></asp:Label></td>
                            </tr>
                        </table>
                    </div>
    Vorrei poter prendere il codice html del div e metterlo nel testo di una mail come riepilogo di un ordine ... poi infatti ho da aggiungere anche un div contenente il dettaglio dell'ordine: quello contiene un repeater ed è pure più articolato... se non riesco con la testata mi sa che son fregato e mi tocca scrivermi il codice html della mail a mano... non posso farcela
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    La classe control ha la proprietà RenderControl che ti restituisce l'html prodotto.

    Però vedo che è sconsigliato. Per esempio bisogna aggiungere la direttiva <%@ Page EnableEventValidation="false" %>, che ti abbassa il grado di sicurezza.

    Come fare allora? la via più semplice, veloce e sicura, è creare l'html a mano.
    Bada che non è né difficile, né lungo.

    Io estraggo l'html da da una pagina aspx, dopo di che uso uno stringbuilder per crearmi la stringa html.
    Bada che l'ho provato e mi trovo decisamente bene.

    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Non sono ancora al mare
    Prova ad usare un HtmlContainerControl invece del generico..
    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx

    Il namespace System.Web.UI.HtmlControls ne ha vari

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    none... avevo già provato ma ho rifatto la prova ed esce lo stesso errore.
    Ipotizzo sia qualcosa che ha a che vedere col fatto che ci sono dei valori inseriti da codebehind...
    Comunque stringuilderò.
    Grazie
    (e vacanza quando voi?)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    hai provato ad iniettare una stringa da JS e poi eseguire quella istruzione lato server ?

    (vacanza_20160812_to_20160828: exec & relax: go)

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    non ho capito la domanda

    (for i = 20160808 to 20160828
    relax += fun
    next)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Intendevo valorizzare l'InnerHtml del DIV da javascript oppure a mano, con un SEMPLICE testo di esempio poi prova a recuperarne l'InnerHtml con quella istruzione in rosso sopra.

    Rimango comunque con il dubbio che si possa recuperare una stringa di formato cosi' complesso come una tabella + css + altro.
    C'e' qualcosa che gli da' fastidio e ti restituisce quell'errore.

    Io parto sempre da un contesto SEMPLICE, lo faccio funzionare, poi vado avanti.
    E' un errore produrre contesti complessi senza essere sicuri che funzioni tutto step by step...

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Vero, ma non l'avevo pianificato fin dall'inizio... cercavo una scorciatoia per copiare in una mail un riepilogo di un ordine che già avevo a video, non era previsto in origine. Alla fine lo stringbuilder non era neanche così complicato e quindi... va bene così.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.