System.Web.UI.UserControl no tiene una propiedad llamada ItemTemplate

al intentar crear un control de usuario web con plantillas, me enfrenta un problema que System.Web.UI.UserControl no tiene una propiedad denominada ItemTemplate. ¿Cómo puedo resolverlo? el código de archivo ascx es

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyTemplatedControl.ascx.cs" Inherits="MyTemplatedControl" %>

El código de archivo .ascx.cs es

using System;
using System.Collections;
using System.Configuration;
using System.Data;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;


public partial class MyTemplatedControl : System.Web.UI.UserControl
{
    private ITemplate itemTemplate = null;
    private ITemplate alternatingItemTemplate = null;
    [TemplateContainer(typeof(ItemContainer))]
    public ITemplate ItemTemplate
    { 
        get{return itemTemplate;}
        set { itemTemplate = value; }
    }
    public ITemplate AlternatingItemTemplate 
    {
        get { return alternatingItemTemplate; }
        set { alternatingItemTemplate = value; }
    }
    private bool isOdd(int i)
    {
        if (i % 2 == 0)
            return false;
        else
            return true;
    }
    void Page_init()
    {
        String[] student = { "sam", "ram", "geet", "rosy", "linda", "vandana" };
        for (int i = 0; i < 6; i++)
        {
            ItemContainer container = new ItemContainer(student[i]);
            if (isOdd(i))
            {
                alternatingItemTemplate.InstantiateIn(container);
            }
            else
            {
                itemTemplate.InstantiateIn(container);
            }
            this.ph1.Controls.Add(container);
        }

        }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
public class ItemContainer : Control, System.Web.UI.INamingContainer
{
 private String _s_name;
    internal ItemContainer(String name)
    {
        _s_name = name;
    }
    public String name 
    {
        get { return _s_name; }
    }
}

El código de archivo .aspx es

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register src="~/MyTemplatedControl.ascx" TagName="MyTemplatedControl" TagPrefix="uc1" %>


<title>Test page for Templated User Control</title> </head> <body> <form id="form1" runat="server"> <div> 
    
    
    
    
    

    
    
    
    
    
    

     

    

    </div>
    </form>
</body>
</html>

El código de archivo .aspx.cs es esto

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataBind();

    }
}
0
soy un estudiante y un gran ganador. ¿me lo propondrás, wat para hacer?
agregado el autor user3110211, fuente
simplemente bcz se da en mi libro de trabajo de práctica. Estoy empezando.
agregado el autor user3110211, fuente
señor, todavía está dando un error que System.Web.UI.control no contiene definición de nombre en la línea 1 de la página .aspx.
agregado el autor user3110211, fuente
muchas gracias señor...
agregado el autor user3110211, fuente
No creo que puedas hacer esto con los controles de usuario. Al menos cuando estaba creando controles, necesitabas usar un control de servidor real. Los controles de usuario son mucho más limitados, a cambio de la libertad de componerlos a partir del marcado.
agregado el autor John Saunders, fuente
Utilice System.Web.UI.Control como su clase base. ¿Por qué estás creando controles si eres un principiante? Esa no es una tarea para principiantes.
agregado el autor John Saunders, fuente
Ciertamente solía ser el caso de que no se puede hacer este tipo de cosas con los controles del usuario. Consulte " Desarrollo de controles de servidor ASP.NET personalizados " para ver cómo crear controles de servidor personalizados. No es el tipo de cosa que un principiante debería estar haciendo.
agregado el autor John Saunders, fuente