DotNetNewsgroup.com  
web access to complete list of Microsoft.NET newsgroups
   home   |   control panel login   |   archive  |  
 
  carried group
academic
adonet
aspnet
aspnet.announcements
aspnet.buildingcontrols
aspnet.caching
aspnet.datagridcontrol
aspnet.mobile
aspnet.security
aspnet.webcontrols
aspnet.webservices
assignment_manager
datatools
dotnet.distributed_apps
dotnet.general
dotnet.myservices
dotnet.nternationalization
dotnet.scripting
dotnet.security
dotnet.vjsharp
dotnet.vsa
dotnet.xml
dotnetfaqs
framework
framework.clr
framework.compactframework
framework.component_services
framework.controls
framework.databinding
framework.drawing
framework.enhancements
framework.interop
framework.odbcnet
framework.performance
framework.remoting
framework.sdk
framework.setup
framework.webservices
framework.windowsforms
framework.wmi
frwk.windowsforms.designtime
lang.csharp
lang.jscript
lang.vb
lang.vb.controls
lang.vb.data
lang.vb.upgrade
lang.vc
lang.vc.libraries
  
 
start date: Thu, 16 Aug 2007 21:37:22 +0200,    posted on: microsoft.public.dotnet.framework.aspnet.webcontrols        back       

Thread Index
  1    Thomas Wagner


Problem with usercontrol/itemplate   
Hi group,

I try to develop a gallery control, that uses templates for displaying. 
Everything should (as I can say) be correct, but "InstantiateIn" does not 
get the right data from my container-class.

The source looks like this, could someone please help me, I have no idea 
what I did wrong!
(Note: When I change "Container.Url" to "Container.XXX", the compiler 
recognizes, that XXX is not a member of ImageTemplateContainer.)

Thank you
Thomas

/* Container: */

  public class ImageTemplateContainer : Control, INamingContainer
  {
    private String m_strUrl;
    public String Url
    {
      get
      {
        return m_strUrl;
      }
    }

    public ImageTemplateContainer(String NavUrl)
    {
      this.m_strUrl = NavUrl;
    }
  }

/* Control: */

  [ToolboxData("<{0}:Gallery runat=server></{0}:Gallery>")]
  [ParseChildren(true)]
  [PersistChildren(false)]
  public class Gallery : WebControl, INamingContainer
  {
    private ITemplate m_ImageTemplate = null;

    [Browsable(false)]
    [PersistenceMode(PersistenceMode.InnerProperty)]
    [TemplateContainer(typeof(ImageTemplateContainer))]
    public virtual ITemplate ImageTemplate
    {
      get { return m_ImageTemplate; }
      set { m_ImageTemplate = value; }
    }

    private ImageTemplateContainer m_itcContainer;
    public ImageTemplateContainer Container
    {
      get
      {
        return m_itcContainer;
      }
    }

    protected override void CreateChildControls()
    {
      if (m_ImageTemplate != null)
      {
        Controls.Clear();

        m_itcContainer = new ImageTemplateContainer("imagetest.jpg");
        m_ImageTemplate.InstantiateIn(m_itcContainer);

        Controls.Add(m_itcContainer);
      }
      else
      {
        this.Controls.Add(new LiteralControl("Nixda"));
      }

      //base.CreateChildControls();
    }
  }
/*  aspx */

<cc1:Gallery ID="Gallery1" runat="server" EnableViewState="true" >
  <ImageTemplate><%# Container.Url %></imageTemplate>
</cc1:Gallery>
Date:Thu, 16 Aug 2007 21:37:22 +0200   Author:  

Google
 
Web dotnetnewsgroup.com


COPYRIGHT ?2005, EUROFRONT WORLDWIDE LTD., ALL RIGHT RESERVE  |   Contact us