6 messaggi dal 04 settembre 2016
Salve a tutti.

Nel code behind di una CLASSE ho creato la seguente sub:


Public Sub alertBootstrap(ByVal mex As String)
        Dim pannelloAvviso As New Object
        Page.Header.Controls.Add(
            New System.Web.UI.LiteralControl("<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>")
            )
        Page.Header.Controls.Add(
            New System.Web.UI.LiteralControl("<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js'></script>")
            )
        Page.Header.Controls.Add(
            New System.Web.UI.LiteralControl("<link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css'  rel='stylesheet' />")
            )
        Page.Header.Controls.Add(
            New System.Web.UI.LiteralControl("<script src=' " + Page.ResolveClientUrl("~/Scripts/bootbox.js") + "'></script>")
            )

        Dim htmlavviso As String = ""
        htmlavviso = "<script>bootbox.alert({  size: 'small', title: 'Attenzione', "
        htmlavviso = htmlavviso + " message: '" + mex + "', callback: function () {} })"
        htmlavviso = htmlavviso + "</script>"
        pannelloAvviso.Controls.Add(New LiteralControl(htmlavviso))
    End Sub



dove "pannelloAvviso" è l'id di un Panel presente nella pagina dove viene richiamata la sub. L'ho iniziallizato come Object altrimenti continuava a dare errore ovviamente.

Come potete immaginare dal codice, tale sub con il parametro passatogli serve a generare un alert dopo aver incluso i fogli di stile e i codici js. Mi è più comodo includerli qui che in ogni singola pagina dove viene richiamata questa sub.

La sub viene richiamata così in una pagina:

Dim obj As new ClasseMia
obj.alertBootstrap("Messaggio avviso")


in questo modo non mi funziona il tutto, ma se provo a prendere tutto il contenuto della sub e metterla in una pagina (senza quindi richiamare la procedura tramite l'oggetto) funziona senza problemi.

Come posso fare?

Grazie a tutti.
Modificato da marcusrossi il 27 settembre 2016 19.11 -
98 messaggi dal 13 febbraio 2016
Ciao,
innanzitutto dato che sono elementi che andrebbero messi nell'head di una pagina credo che ti convenga meglio utilizzare metodi che ti restituiscono ad esempio un oggetto HtmlGenericControl.
Infatti per gli script potresti farti una Function di questo tipo:


Public Function AddSscript() As HtmlGenericControl
        Dim newControl As New HtmlGenericControl("script")
        newControl.Attributes("src") = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"

        Return newControl
    End Function



e nella pagina la richiami così:


Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim obj As New ClasseMia
        Me.Header.Controls.Add(me.AddSscript())
    End Sub



Ciao,
Paolo
6 messaggi dal 04 settembre 2016
Grazie mille per la tua risposta Paolo.

Ma se io nella funzione AddSscript() volessi includere più di un foglio di stile come posso fare?
98 messaggi dal 13 febbraio 2016
A questopunto dato che devi includere più files ti conviere utilizzare un metodo che ti restituisca un oggetto LiteralControl, ad esempio così:


Public Function code() As LiteralControl
        Dim testo As LiteralControl = New LiteralControl()
        testo.Text = "<link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css'  rel='stylesheet' />"
        testo.Text += "<link href='https://maxcdn.bootstrapcdn.com/bootstrap/5/css/bootstrap.min.css'  rel='stylesheet' />"
        testo.Text += " <link href ='stile.css' rel='stylesheet' type='text/css'>"
        Return testo
    End Function


E lo richiami sempre così:
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim obj As New ClasseMia
        Me.Header.Controls.Add(obj.code)
    End Sub


Ciao
Paolo

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.