相关疑难解决方法(0)

带有子项的ASP.NET自定义/用户控件

我想创建一个具有子项的自定义/用户控件.

例如,我希望我的控件具有以下标记:

<div runat="server" id="div">
    <label runat="server" id="label"></label>
    <div class="field">
        <!-- INSERT CHILDREN HERE -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我想在页面上使用它时,我只需:

<ctr:MyUserControl runat="server" ID="myControl">
    <span>This is a child</span>
    <div runat="server" id="myChild">And another <b>child</b>
</ctr:MyUserControl>
Run Code Online (Sandbox Code Playgroud)

我的用户控件中的子控件将被插入到我的用户控件中.完成此任务的最佳方法是什么?

该功能类似于asp:PlaceHolder,但我想添加更多选项以及其他标记等.子页面控件仍然需要能够被页面访问.(在上面的例子中,页面上应该有myChild控件)

编辑------

它可以是模板控件,只要它允许我引用页面上的子项.

asp.net

10
推荐指数
1
解决办法
6186
查看次数

如何在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
查看次数

标签 统计

asp.net ×2

asp.net-webcontrol ×1

html ×1

web-controls ×1