相关疑难解决方法(0)

如何在不声明模板标签的情况下对孩子进行控制?

我想创建一个像一个控件Panel.

我希望我的控件接受一些控件作为孩子而不键入模板名称,就像Panel,如下所示:

<asp:Panel runat="server">
    My content
    <div>Content</div>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

我有内容控件,而不知道是什么ITemplate.

我基本上想转换它

<my:MyControl runat="server">
    <ContentTemplate>
        My content
        <div>Content</div>
    </ContentTemplate>
</my:MyControl>
Run Code Online (Sandbox Code Playgroud)

进入这个

<my:MyControl runat="server">
    My content
    <div>Content</div>
</my:MyControl>
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

public class MyControl : CompositeControl
{
    [TemplateInstance(TemplateInstance.Single)]
    public ITemplate Content { get; set; }

    protected override void CreateChildControls()
    {
        base.CreateChildControls();

        Content.InstantiateIn(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

以上工作与<Content></Content>控件内的标签,但没有它不起作用.该属性根本没有做任何事情(我猜).少了什么东西?

我怎样才能实现它?任何提示?为什么Panel支持这个?

.net c# asp.net controls controltemplate

6
推荐指数
1
解决办法
2138
查看次数

如何在ASP.Net WebControl的"Content"内部属性​​中包含其他标记?

我搜索过该网站,但我无法找到解决问题的方法,所以如果已经得到解答,我会道歉(我确定有人必须先问过这个问题).

我编写了一个jQuery Popup窗口,我将其打包为WebControl和IScriptControl.最后一步是能够在我的控件的标签内写入标记.我已经使用了InnerProperty属性几次,但仅用于包含强类型类的列表.

这是我在WebControl上的属性:

[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public something??? Content
{
   get
   {
      if (_content == null)
      {
         _content = new something???();
      }
      return _content;
   }
}
private something??? _content;
Run Code Online (Sandbox Code Playgroud)

这是我所追求的HTML标记:

   <ctr:WebPopup runat="server" ID="win_Test" Hidden="false" Width="100px" Height="100px"
      Modal="true" WindowCaption="Test Window" CssClass="window">
      <Content>
         <div style="display:none;">
            <asp:Button runat="server" ID="Button1" OnClick="Button1_Click" />
         </div>
         <%--Etc--%>
         <%--Etc--%>
      </Content>
   </ctr:WebPopup>
Run Code Online (Sandbox Code Playgroud)

不幸的是我不知道我的Content属性应该是什么类型.我基本上需要复制UpdatePanelContentTemplate.

编辑:所以以下允许自动创建一个模板容器,但没有控件出现,我正在做什么错了?

[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ITemplate Content
{
    get
    {
        return _content;
    }
    set
    {
        _content = value;
    }
}
private ITemplate …
Run Code Online (Sandbox Code Playgroud)

html asp.net web-controls asp.net-webcontrol

4
推荐指数
1
解决办法
2768
查看次数