Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339

    masert Page e Call Label aspnet

    Ciao a tutti, volevo chiedervi un aiuto.

    Ho una master page con all'interno un label, poi ho delle pagina aspx che fanno uso del modello vorrei all'interno di queste pagine poter richiamare le proprietà(visible ) della label che sta nella master.
    Come posso farE??


    Grazie a tutti

    Ps dimenticavo la mia pagina aspx contiente un usercontrol, da quella usercontrol voglio chiamare le funzioni all'interno della master page.
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  2. #2
    Ho appena affrontato un problema simile. Nel code behind della tua pagina content scrivi:
    codice:
        Dim oOuter_CPH As ContentPlaceHolder
        oOuter_CPH = TryCast(Me.Master.FindControl("ID_CONTENTPLACEHOLDER"), ContentPlaceHolder)
        TryCast(oOuter_CPH.FindControl("ID_CONTROLLO"), TIPO DEL CONTROLLO).Visible = False
    Fammi sapere se hai problemi.ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    grazie mille domani provo subito.

    Spero non sia un problema il fatto che la chiamato la faccio tramite un asc che viene caricato dentro ad un panel in una pagina ASPX che fa parte del modello Master.

    Appena ho fatto ti faccio sapere
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Originariamente inviato da motogpdesmo16
    Ho appena affrontato un problema simile. Nel code behind della tua pagina content scrivi:
    codice:
        Dim oOuter_CPH As ContentPlaceHolder
        oOuter_CPH = TryCast(Me.Master.FindControl("ID_CONTENTPLACEHOLDER"), ContentPlaceHolder)
        TryCast(oOuter_CPH.FindControl("ID_CONTROLLO"), TIPO DEL CONTROLLO).Visible = False
    Fammi sapere se hai problemi.ciao
    Ciao ho fatto delle prove..però ho dei problemi.

    1.nella mia pagina ascx non vedo this.Master
    2. Io dovrei chiamare un funzione pubblica che c'è nella master page, la quale nasconde un div. ( <div id="dvFade" runat="server"> </div>)
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    allora.

    Pagina Aspx (creato sul modello della master)
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
    CodeFile="Child1.aspx.cs" Inherits="Child1" Title="Untitled Page" %>

    <%@ MasterType TypeName="MasterPage" %>

    Poi da codice

    Master.MiaFunzione();

    E funziona il tutto

    Solo che la pagina in cui devo chiamare Master.MiaFunzione(); è un asc che è caricato all'interno di panel dentro alla pagina aspx.

    ho provato per cui a fare :
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Page.ascx.cs"
    Inherits="Page" %>
    <%@ Reference VirtualPath="~/MasterPage.master"%>

    Ma dentro al codice non la trova non funziona

    Aiuto
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: Dato che non uso le Master scrivo non per risolvere il problema, ma per imparare qualcosa anche io.
    Ho fatto questa prova. Ho caricato un UserControl (.ascx) nel master.
    Dentro il master ho messo una procedura pubblica che fa da interfaccia tra la Content e la Master,

    Public Sub MiaFunzione(ByVal point As Integer)
    Me.orologio1.aLabelOrario.Font.Size = FontUnit.Point(point)
    End Sub

    ossia, invocando MiaFunzione dal Content, invoco un metodo dell'usercontro (orologio1)

    la invoco così
    DirectCast(Me.Master, prove_MasterPage).MiaFunzione(58)

    nota che non posso invocare il metodo MiaFunzione direttamente da Master, ma debbo fare un cast esplicito alla classe vera.

    Il secondo modo che ho trovato è questo.
    Nella pagina Content metto un riferimento all'usercontrol
    <%@ Reference Control="~/controlli_utente/orologio/orologio.ascx" %>

    e da codice uso la reflection per invocare il metodo dell'uc.
    Dim o As orologio = TryCast(Me.Master.FindControl("orologio1"), orologio)
    If o IsNot Nothing Then
    o.aLabelOrario.Font.Size = FontUnit.Point(36)
    End If

    :master: non so se serva, comunque ci ho provato



    ps. questo è l'ultimo modo che ho trovato
    nel master creo un proprietà pubblica a solo lettura che referenzia l'UC
    Public ReadOnly Property orologio() As orologio
    Get
    Return Me.orologio1
    End Get
    End Property


    nella pagina Content aggiungo la direttiva MasterType
    <%@ MasterType VirtualPath="~/prove/MasterPage.master" %>
    oltre al riferimento all'UC
    <%@ Reference Control="~/controlli_utente/orologio/orologio.ascx" %>

    e finalmente da codice posso invocare un metodo dell'UC
    Me.Master.orologio.aLabelOrario.Font.Size = FontUnit.Point(36)
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Originariamente inviato da pietro09
    :master: Dato che non uso le Master scrivo non per risolvere il problema, ma per imparare qualcosa anche io.
    Ho fatto questa prova. Ho caricato un UserControl (.ascx) nel master.
    Dentro il master ho messo una procedura pubblica che fa da interfaccia tra la Content e la Master,

    Public Sub MiaFunzione(ByVal point As Integer)
    Me.orologio1.aLabelOrario.Font.Size = FontUnit.Point(point)
    End Sub

    ossia, invocando MiaFunzione dal Content, invoco un metodo dell'usercontro (orologio1)

    la invoco così
    DirectCast(Me.Master, prove_MasterPage).MiaFunzione(58)

    nota che non posso invocare il metodo MiaFunzione direttamente da Master, ma debbo fare un cast esplicito alla classe vera.

    Il secondo modo che ho trovato è questo.
    Nella pagina Content metto un riferimento all'usercontrol
    <%@ Reference Control="~/controlli_utente/orologio/orologio.ascx" %>

    e da codice uso la reflection per invocare il metodo dell'uc.
    Dim o As orologio = TryCast(Me.Master.FindControl("orologio1"), orologio)
    If o IsNot Nothing Then
    o.aLabelOrario.Font.Size = FontUnit.Point(36)
    End If

    :master: non so se serva, comunque ci ho provato



    ps. questo è l'ultimo modo che ho trovato
    nel master creo un proprietà pubblica a solo lettura che referenzia l'UC
    Public ReadOnly Property orologio() As orologio
    Get
    Return Me.orologio1
    End Get
    End Property


    nella pagina Content aggiungo la direttiva MasterType
    <%@ MasterType VirtualPath="~/prove/MasterPage.master" %>
    oltre al riferimento all'UC
    <%@ Reference Control="~/controlli_utente/orologio/orologio.ascx" %>

    e finalmente da codice posso invocare un metodo dell'UC
    Me.Master.orologio.aLabelOrario.Font.Size = FontUnit.Point(36)

    Ciao scusa ma mi son perso.
    Prima un piccolo riepilogo x capire se ci siamo Capiti:

    Master Page
    -- Pagina Aspx
    -- Panel
    --- Usercontrol

    questo è lo schema di chiamate un Pagina aspx che utilizza un Modello Master. Nella pagina aspx abbiamo un aspanel che dinamicamente tramite panel.controls.add("usercontrol.ascx"); inserisco il mio usercontrol.

    Detto questo ho inserito nella mia pagina ASPX:

    <%@ MasterType TypeName="MasterPage" %>
    <%@ Reference Control="~/usercontrol.ascx"%>

    dalla mia pagina ASCX

    ho provato a richiamare il metodo ma non funziona nn trova. mi sfugge qualcosa?

    Da tenere presente che quello che vorrei fare è nascondere un panel che sta nella master page.
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: forse non ho capito io.

    Ho un UserControl nel Master (non nel Content) e voglio lanciare un metodo dell'usercontrol da pagina Content. E' così? :master:
    Pietro

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    339
    Originariamente inviato da pietro09
    :master: forse non ho capito io.

    Ho un UserControl nel Master (non nel Content) e voglio lanciare un metodo dell'usercontrol da pagina Content. E' così? :master:
    usercontrol viene aggiunto al panel della mai pagina ASPX.

    la Pagina ASPX utilizza la PageMaster.
    Ci sono 10 categorie di persone al mondo: quelle che capiscono
    il sistema binario e quelle che non lo capiscono.

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    avevo capito proprio male!
    L'UC deve solo lanciare un evento a cui si sottoscriverà il client.
    esempio in basic
    codice:
        Public Event SelectedIndexChanged As System.EventHandler
    
        Public Property DropDownList() As DropDownList
            Get
                Return Me.DropDownList1
            End Get
            Set(ByVal value As DropDownList)
                Me.DropDownList1 = value
            End Set
        End Property
    
        Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
            RaiseEvent SelectedIndexChanged(sender, e)
        End Sub
    nell'UC ho un dropdown che lancia un evento quando si cambia la selezione.

    La pagina che contiene l'UC sottoscriverà l'evento (per esempio)
    codice:
        Protected Sub mio_user_control1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mio_user_control1.SelectedIndexChanged
            Dim ddl As DropDownList = DirectCast(sender, DropDownList)
            Me.Label1.Text = ddl.SelectedItem.Text
    
        End Sub
    in questo esempietto, Label1 è nella stessa pagina, non nel master.
    Se è nel master puoi vedere il codice di prima.
    1) nel master metto una property public readonly che mappi Label1
    2) segui il codice di prima...
    Pietro

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.