有没有办法将内部控件放在ASP.NET自定义控件中?
发布时间:2021-01-17 14:23:00 所属栏目:asp.Net 来源:互联网
导读:我想做一些类似(更新的例子): uc:Tabs Tab Name=A handy tab Node Url=~/Default.aspx / Node Url=~/Node2.aspx / /Tab Tab Name=Another handy tab Node Url=~/Neato.aspx /
|
我想做一些类似(更新的例子): <uc:Tabs>
<Tab Name="A handy tab">
<Node Url="~/Default.aspx" />
<Node Url="~/Node2.aspx" />
</Tab>
<Tab Name="Another handy tab">
<Node Url="~/Neato.aspx" />
<Node Url="~/Node3.aspx" />
<Node Url="~/Node4.aspx" />
</Tab>
<uc:Tabs>
可能?任何教程或操作方法?我不知道甚至搜索什么或这是什么,所以没有找到任何东西到目前为止.内控内收藏东西…? 解决方法使用 ParseChildrenAttribute和 PersistChildrenAttribute属性:[ParseChildren(false)]
[PersistChildren(true)]
public class MyControl : UserControl { }
这将导致您在引用中放置任何控件: <uc:MyControl runat="server"> <asp:TextBox runat="server" /> <uc:MyControl> 附加到UserControl内容的控件集合的末尾. 但是,如果要设置控件集合,则应该使用服务器控件而不是用户控件.对于像这样的控件: <foo:TabControl runat="server">
<Tabs>
<foo:Tab CssClass="myclass" Title="Hello World" />
</Tabs>
</foo:TabControl>
您需要具有Tabs属性的Control类; Tabs属性应该是一个集合;它应该包含Tab类型的对象.我在这里创建了三个类: [ParseChildren(true,"Tabs")]
public class TabControl: WebControl,INamingContainer
{
private TabCollection _tabs;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
public TabCollection Tabs
{
get
{
if (_tabs == null)
{
_tabs = new TabCollection();
}
return _tabs;
}
}
protected override void Render(HtmlTextWriter writer)
{
foreach (Tab tab in Tabs)
{
writer.WriteBeginTag("div");
writer.WriteAttribute("class",tab.CssClass);
writer.Write(HtmlTextWriter.TagRightChar);
writer.Write("this is a tab called " + tab.Title);
writer.WriteEndTag("div");
}
}
}
和tab类: public class Tab
{
public string CssClass { get; set; }
public string Title { get; set; }
}
和标签集合: public class TabCollection : Collection<Tab> { } (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 经过身份验证的服务不支持跨域javascript回调.
- 什么是使用aspnet_compiler.exe预编译ASP.NET项目的优势?
- asp.net – Ajax上的Identity Server 3 – 401而不是302
- 端到ASP.NET MVC的推荐方法
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- 从ASP.NET MVC应用程序中的Amazon SES发送电子邮件
- asp.net – IIS Express(WebMatrix)打开外部连接
- asp.net-web-api – WebAPI:403在发布网站后被禁止
- asp.net-web-api – WebAPI 2属性路由启用会话状态
- 在asp.net中HttpContext.Current.User和Thread.CurrentPrin
推荐文章
站长推荐
- asp.net – 我可以在超链接上显式指定NavigateUr
- asp.net – $(“#dialog”).parent().appendTo($
- 防止双击asp.net按钮
- asp.net – 动态创建和共享Google云端硬盘文件夹
- ASP.NET MVC API 接口验证的示例代码
- asp.net – Orchard CMS Media中的文件大小上传限
- asp.net中MVC借助Iframe实现无刷新上传文件实例
- asp.net-mvc – MVC 5 OWIN登录声明和Antiforger
- asp.net-web-api – 首先使用ASP.NET Web API的E
- asp.net-mvc – 如何阻止用户在MVC3应用程序上登
热点阅读
