System.Web.UI.UserControl не имеет открытого имени свойства ContentTemplate.
Прежде всего, извините за мой английский.
Я искал на нескольких форумах по этому вопросу, и здесь я нашел похожий вопрос об этой проблеме. Но есть время, я не могу найти решение, поэтому я спрошу ответ, объяснив мой контекст.
Дело в том, что у меня есть "Пользовательский веб-элемент управления" и некоторый код, который я использовал здесь для создания ContentTemplate, в который я могу поместить некоторые элементы HTML или другие элементы управления. И это работает почти хорошо, дело в том, что когда я пытаюсь увидеть дизайнером, дизайнер показывает мне, что "System.Web.UI.UserControl" не имеет свойства с именем "ContentTemplate". Я пробую несколько решений, таких как этот тег [PersistenceMode(PersistenceMode.InnerProperty)] и некоторые другие, которые я не могу вспомнить из своей головы.
Вот контрольный код: ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FormGroup.ascx.cs" Inherits="Repl4y.Controllers.FormGroup" %>
<div class="form-group">
<asp:PlaceHolder runat="server" ID="BodyControlSpace"></asp:PlaceHolder>
</div>
C#
public partial class FormGroup : System.Web.UI.UserControl
{
private ITemplate _ContentTemplate;
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate ContentTemplate
{
get { return _ContentTemplate; }
set { _ContentTemplate = value; }
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
_ContentTemplate.InstantiateIn(BodyControlSpace);
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
Тестовая страница Cadppg.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/AreaRestrita.Master" AutoEventWireup="true" CodeBehind="Cadppg.aspx.cs" Inherits="Repl4y.Cadppg" %>
<%@ Register Assembly="Repl4y" Namespace="Repl4y.Controllers" TagPrefix="My" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<My:FormGroup runat="server" >
<ContentTemplate>
<My:Painel runat="server" ID="Painel1" _Label="teste" _Number="22" />
<My:Painel runat="server" ID="Painel2" _Label="teste" _Number="22" />
</ContentTemplate>
</My:FormGroup>
Я не могу поставить изображение еще, потому что у меня недостаточно репутации, но скоро я опубликую ошибку.
Есть какой-то способ обмануть визуальную студию и создать другое свойство ContentTemplate с другим типом, например, строкой или чем-то еще, чтобы "дизайн" работал, мне действительно нужно, потому что мои элементы управления - это просто интеграция с начальной загрузкой, и я буду использовать конструктор для создавать обработчики событий, такие как щелчки по кнопкам и т. д.
Спасибо.!