Salut!
J'ai cherché un peu partout sur le net et dans les FAQs, et je constate que j'ai un problème commun, mais dont je n'ai pu trouver la solution.
Le voici:
J'ai céér un user controle dont voicer le code:
1 2 3 4 5 6 7
| <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MenuBox.ascx.cs" Inherits="Axxion.Controls.MenuBox" %>
<div class="box">
<div class="title"><asp:Label ID="TitleLabel" runat="server"></asp:Label></div>
<div class="content">
<asp:PlaceHolder ID="BoxContentPlaceHolder" runat="server"></asp:PlaceHolder>
</div>
</div> |
Comme vous voyez, rien de bien méchant, il s'agit juste d'une petite box est designée comme j'en ai envie et qui contient un code entré sur la page comme template.
Voici le code-behind:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| namespace Axxion.Controls
{
public partial class MenuBox : System.Web.UI.UserControl
{
public string Title { get; set; }
[TemplateContainer(typeof(MessageContainer))]
[TemplateInstance(TemplateInstance.Single)]
[PersistenceMode(PersistenceMode.InnerProperty)]
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public ITemplate BoxContent { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
TitleLabel.Text = Title;
BoxContent.InstantiateIn(BoxContentPlaceHolder);
}
}
public class MessageContainer : Control, INamingContainer
{
}
} |
Et le code-behind designer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public partial class MenuBox {
/// <summary>
/// TitleLabel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label TitleLabel;
/// <summary>
/// BoxContentPlaceHolder control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder BoxContentPlaceHolder;
} |
Rien de bien méchant comme vous le voyez.
J'ai déclaré le composant dans le web.config:
<add tagPrefix="ags" tagName="MenuBox" src="/controls/MenuBox.ascx"></add>
Pourtant, dans la toolbox sur la gauche, sous les components de mon projet, j'ai le "MessageContainer" (qui sert à rien, mais pas la "MenuBox"). L'autocompletion ne marche pas pour mon composant. Et quand je l'écrit en dur, et que j'affiche le mode design, il y a une erreur:
"Error creating control - ags:menubox
Tyoe "System.Web.UI.UserControl does not have a public property BoxContent" .
Je deviens fou.
Quelqu'un a-t-il déjà eu ce problème?
Merci d'avance
Partager