有没有办法将内部控件放入 ASP.NET 自定义控件中?

2023-11-24

我想做类似的事情(更新的示例):

<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>

可能的?有任何教程或操作方法吗?我不确定要搜索什么或这叫什么,所以到目前为止还没有找到任何东西。内部控制?内部收藏什么东西......?


Use the 解析子属性 and 保留子属性属性:

[ParseChildren(false)]
[PersistChildren(true)]
public class MyControl : UserControl { }

这将导致您放入引用内的任何控件:

<uc:MyControl runat="server">
  <asp:TextBox runat="server" />
<uc:MyControl>

要附加到 UserControl 内容的 Controls 集合的末尾。

但是,如果您想要一组控件,则可能应该使用服务器控件而不是用户控件。对于像这样工作的控件:

<foo:TabControl runat="server">
    <Tabs>
        <foo:Tab CssClass="myclass" Title="Hello World" />
    </Tabs>
</foo:TabControl>

您需要一个具有 Tabs 属性的 Control 类; Tabs 属性应该是一个 Collection;并且它应该包含 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");
        }
    }
}

和选项卡类:

public class Tab
{
    public string CssClass { get; set; }
    public string Title { get; set; }
}

和选项卡集合:

public class TabCollection : Collection<Tab> { }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法将内部控件放入 ASP.NET 自定义控件中? 的相关文章

  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • .NET UI 元素线程限制的原因

    我们知道 除了实例化元素的线程之外 不可能从任何线程执行操作任何 UI 元素属性的代码 我的问题是 为什么 我记得当我们使用 COM 用户界面元素时 在 COM Visual Basic 6 0 时代 所有 UI 元素都是使用 COM 类和
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 使用Azure Service Fabric的默认客户端时如何向请求添加消息头?

    我想知道是否可以将自定义消息头注入到传出请求中以携带附加信息 而无需反序列化有效负载来完成身份验证 验证或请求关联等功能 例如通过消息检查器提供的 wcf Update 使用 SDK v2 您现在可以 相对 轻松地修改 Reliable S
  • 当从属文本框中没有输入文本时,如何让 gridview 显示所有表格行?

    下面的代码可以正常工作 并根据文本框中输入的文本过滤我的网格视图 当我的文本框中没有输入任何文本时 我没有得到任何结果 并且无法理解为什么 我的问题 如何让gridview显示all当文本框中没有输入文本时表行 MSSQL Search n
  • 如何检查 FTP 目录是否存在

    寻找通过 FTP 检查给定目录的最佳方法 目前我有以下代码 private bool FtpDirectoryExists string directory string username string password try var r
  • 如何使用 ASP.NET Web API 生成 ATOM 和 RSS2 提要?

    需要采取哪些步骤来调整 ASP NET Web API 的默认 XML 输出以生成 ATOM 和 RSS2 提要 您将需要实现自定义 MediaTypeFormatter 您可能想查看 Filip 的博客文章用于 ASP NET WebAP
  • 限制对记录的访问。基于声明的权限是个好主意吗

    在 net 基于声明的身份框架中 如果我想限制用户对某个帐户 特定帐户 123456 执行操作 查看或编辑 我说的是商业实体 例如银行帐户 创建索赔是个好主意吗对于他们可以查看或编辑的每个帐户 一组中有很多索赔有什么缺点吗 系统管理员可能有
  • 如何在没有互联网连接的情况下安装 NuGet 包?

    目前我正在一台不允许访问互联网的虚拟电脑上进行开发 我设法获取 NuGet Tools vsix 将 NuGet 添加到 Visual Studio 2010 但似乎无法找出如何离线部署 NuGet 包 例如 我下载了EntityFrame
  • 名称在当前上下文中不存在

    所以 我正在我的笔记本电脑和台式机之间完成这个项目 该项目在笔记本电脑上运行 但现在将更新的源代码复制到桌面上后 我的项目中有超过 500 个错误 所有这些错误都是 该名称在当前上下文中不存在 这是一个例子 职位 aspx
  • 如何在 sql server 中加密数据并在 .net 应用程序中解密

    我想加密 sql server 中的一些密码并让 c 应用程序解密它们 显然 我可以创建一个 SP 来解密所需的密码并将其传递给 c 应用程序 但这意味着通过网络发送明文密码 因此 我希望能够在 sql server 中加密我的密码 使用密
  • 从 .net 应用程序登录 OpenID 站点

    我一直在考虑编写一个小工具来登录 SO 并定期使用一些主题 当前信息更新我的个人资料信息 例如我最新的博客文章或我需要帮助的问题等 为了让它工作 我需要以某种方式从控制台应用程序登录到SO 是否有一个 Net 库可以简化使用原始 http
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • 使用 asp.net 发送 20,000 多封电子邮件

    我正在编写一个应用程序 需要向从我们的数据库中选择的学生发送大量电子邮件 每封电子邮件都将进行个性化 包括他们的姓名 学习课程等 因此需要一次发送一个 我可以在 SmtpClient 上循环执行此操作 但我担心我尝试发送的数字最终会遇到超时
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 自定义错误页面未显示

    由于某种原因 当我收到 ASP NET 运行时错误时 它不会加载我的自定义错误页面

随机推荐