带有子项的ASP.NET自定义/用户控件
发布时间:2020-05-23 22:20:08 所属栏目:asp.Net 来源:互联网
导读:我想创建一个具有子项的自定义/用户控件. 例如,我希望我的控件具有以下标记: div runat=server id=div label runat=server id=label/label div class=field !-- INSERT CHILDREN HERE -- /div/div 当我想在页
|
我想创建一个具有子项的自定义/用户控件. 例如,我希望我的控件具有以下标记: <div runat="server" id="div">
<label runat="server" id="label"></label>
<div class="field">
<!-- INSERT CHILDREN HERE -->
</div>
</div>
当我想在页面上使用它时,我只需: <ctr:MyUserControl runat="server" ID="myControl">
<span>This is a child</span>
<div runat="server" id="myChild">And another <b>child</b>
</ctr:MyUserControl>
我的用户控件中的子控件将被插入到我的用户控件中.完成此任务的最佳方法是什么? 该功能类似于asp:PlaceHolder,但我想添加更多选项以及其他标记等.此外,子控件仍然需要能够被页面访问. (在上面的例子中,页面上应该有myChild控件) 编辑—— 它可以是模板控件,只要它允许我引用页面上的子项. 解决方法我刚才问了类似的问题.见 here.我相信你必须使用ITemplate作为InnerProperty: [PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[TemplateInstance(TemplateInstance.Single)]
public ITemplate Content
{
get
{
return _content;
}
set
{
_content = value;
}
}
private ITemplate _content;
然后覆盖控件的CreateChildControls方法: protected override void CreateChildControls()
{
if (this.Content != null)
{
this.Controls.Clear();
this.Content.InstantiateIn(this);
}
base.CreateChildControls();
}
使用ITemplate有什么危害您可以将它与现有标记结合使用,并在Content属性中编写您想要的任何HTML. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 将原始html转储到Telerik网格
- asp.net-mvc – 如何将ViewData传递给HandleError视图?
- asp.net-mvc – ASP.NET MVC将数据从视图传递给控制器
- asp.net-mvc-5 – 我需要在MVC Razor中编码属性值吗?
- asp.net-mvc – 如何包括一个模型与RedirectToAction?
- asp.net-mvc – ASP.NET Core MVC:设置身份cookie的到期
- asp.net-web-api – MaxExpansionDepth,带有最新的webapi和
- asp.net-mvc-3 – 如何判断我的动作是否被RenderAction调用
- asp.net – 比HttpHandlers快的东西?
- asp.net-mvc – 请求验证 – ASP.NET MVC 2
推荐文章
站长推荐
- .net – 为每个用户创建子域
- 做一个ASP.NET网站的更改杀死活动会话?
- asp.net – 如何在MVC4 Web API中自定义JSON序列
- asp.net – MVC-Mini-Profiler – Web窗体 – 找
- 获取当前的ASP.NET机器密钥
- asp.net – ASP .Net VNext和Owin
- asp.net-mvc – 我如何编写一个ActionFilter来确
- asp.net – WebForm_DoPostBackWithOptions没有使
- asp.net-mvc – 使用Entity FrameWork保存更改/更
- asp.net-mvc – requestValidationMode =“2.0”
热点阅读
