有没有办法将内部控件放在ASP.NET自定义控件中?
发布时间:2020-12-15 20:00:58 所属栏目: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" / Node Url="~/Node3.aspx" / Node Url="~/Node4.aspx" / /Tabuc:Tabs
我想做一些类似(更新的例子):
<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 mvc添加到AUTHORIZE属性
- asp.net-mvc – 模型在MVC中的作用是什么?
- asp.net – 已添加具有相同密钥的项目. IIS WCF休息
- asp.net-mvc – 从自定义HTML Helper访问WebViewPage
- asp.net-mvc – 为dnx rc2运行MVC 6 ASP.NET 5本地化示例
- Asp.NetCore1.1版本去掉project.json后如何打包生成跨平台包
- asp.net – 如何在WebForms中的form.onSubmit期间调用HTML5
- 何时使用ASP.NET MVC与ASP.NET Web窗体?
- ASP.NET MVC和ORM选择
- asp.net – 部分查看并将数据传递给布局MVC3
推荐文章
站长推荐
- ASP.NET MVC全能路由
- asp.net – 在IE7 / IE8中未定义window.XMLHttpR
- asp.net – 如何为每个Azure部署插槽使用不同的w
- asp.net-web-api – ASP.NET Web API自定义帮助页
- asp.net – Web.Config奇怪的部分?
- asp.net-mvc – .net Mvc 3 Ajax.BeginForm,获取
- ASP.NET中web.config文件的替代方法
- asp.net – 如何拒绝访问文件夹或文件
- asp.net-mvc – 在ASP.Net MVC中的操作后替换par
- asp.net-mvc – 是否有用于生成链接的通用ASP.NE
热点阅读