n° 185
Maggio/Giugno 2013
Maggio 24, 2013, 05:28:36 pm *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  

* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: compositecontrol?  (Letto 427 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Mirco Manta
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 1


Mostra profilo
« inserita:: Maggio 11, 2012, 04:48:44 pm »

Salve,
sto cercando (senza riuscire) a creare un mio controllo da aggiungere alla barra di vs 2010,

quello che devo ottenere dal controllo è avere nella pagina la possibilità (e solo quella) di organizzare i tag in questo modo 8e di gestirli da codice):

Codice:
    <cc2:ControlPanel ID="ControlPanel1" runat="server">
        <cc2:Tab ID="Tab1" runat="server">
            <Content>1</Content>
            <Icon>2</Icon>
            <Text>3</Text>
        </cc2:Tab>
        <cc2:Tab ID="Tab2" runat="server">
            <Content>1</Content>
            <Icon>2</Icon>
            <Text>3</Text>
        </cc2:Tab>
        <cc2:Tab ID="Tab3" runat="server">
            <Content>1</Content>
            <Icon>2</Icon>
            <Text>3</Text>
        </cc2:Tab>
// ecc..
    </cc2:ControlPanel>

ottengo però i seguenti errori:
La proprietà 'Tab' non prevede una proprietà denominata 'ID'.
C:\Users\Mirco\Documents\My Web Sites\Vitrum\Default.aspx(57): Compilazione (web): System.Collections.Generic.List`1[[ControlPanel.Tab, ControlPanel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] può avere solo elementi di tipo 'ControlPanel.Tab'. 'Content' è di tipo 'System.Web.UI.HtmlControls.HtmlGenericControl'.
C:\Users\Mirco\Documents\My Web Sites\Vitrum\Default.aspx(58): Compilazione (web): System.Collections.Generic.List`1[[ControlPanel.Tab, ControlPanel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] può avere solo elementi di tipo 'ControlPanel.Tab'. 'Icon' è di tipo 'System.Web.UI.HtmlControls.HtmlGenericControl'.
C:\Users\Mirco\Documents\My Web Sites\Vitrum\Default.aspx(59): Compilazione (web): System.Collections.Generic.List`1[[ControlPanel.Tab, ControlPanel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] può avere solo elementi di tipo 'ControlPanel.Tab'. 'Text' è di tipo 'System.Web.UI.HtmlControls.HtmlGenericControl'.

e il codice del controllo è:

Codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;

namespace ControlPanel
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
    [ToolboxData("<{0}:Tab runat=\"server\" ></{0}:Tab>")]
    [Description("Elemento del menù")]
    public class Tab : CompositeControl
    {
        [PersistenceMode(PersistenceMode.InnerProperty)]
        public PlaceHolder Icon { get; set; }

        [PersistenceMode(PersistenceMode.InnerProperty)]
        public PlaceHolder Text { get; set; }

        [PersistenceMode(PersistenceMode.InnerProperty)]
        public PlaceHolder Content { get; set; }
    }

    [ToolboxData("<{0}:ControlPanel runat=server></{0}:ControlPanel>")]
    [AspNetHostingPermission(SecurityAction.Demand,Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,Level = AspNetHostingPermissionLevel.Minimal)]
    [ParseChildren(true, "Tab")]
    [Description("Menù")]
    public class ControlPanel : CompositeControl
    {
        private List<Tab> _Tabs;

        public ControlPanel()
        {
            _Tabs = new List<Tab>();
        }

        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            writer.Write("Ci sono " + _Tabs.Count.ToString() + " elementi nel menù");
        }
       
        [
        Description("L'insieme degli elementi del menù"),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
        PersistenceMode(PersistenceMode.InnerDefaultProperty)
        ]
        public List<Tab> Tab
        {
            get
            {
                return _Tabs;
            }
        }
    }

   
}

inoltre, togliendo i tag annidati in <tab>...</tab> il codice viene eseguito, ma non mostra il risultato corretto (numero tag annidati sempre 0)

Qualche suggerimento?
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2011 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



Links to Page