gpt4 book ai didi

c# - ASP.NET Web 控件只允许特定内容?

转载 作者:行者123 更新时间:2023-11-30 22:39:30 25 4
gpt4 key购买 nike

我是 ASP .NET Web 控件的新手,但不是一般的 ASP .NET 或 C#。

我想知道如何将允许的内容类型限制为特定类。

我制作了一个名为 TabPanel 的自定义 Web 控件,我希望它只能包含 TabPages。

例如,以下标记应该是非法的,因为它包含一个复选框。

<cc1:TabPanel ID="TabPanel1" runat="server">
<cc1:TabPage runat="server">
this is a simple test
</cc1:TabPage>
<cc1:TabPage runat="server">
this is another simple test
</cc1:TabPage>
<asp:CheckBox runat="server" />
</cc1:TabPanel>

在这种情况下,我不希望复选框出现在那里。我怎样才能阻止这种情况发生?

最佳答案

我还没有尝试过你到底在做什么,但基于我做过的其他事情,我会尝试这个:

  • 在 TabPannel 中创建一个属性,该属性是 TabPages 的集合(出于演示目的将其称为 Tabs)。这可以是数组、列表或自定义集合类,关键是要键入仅接受 TabPages 作为成员。
  • 为属性赋予 [PersistenceMode(PersistenceMode.InnerProperty)] 特性。
  • 重写 CreateChildControls 以将集合的内容添加到控件。

如果您这样做,那么您的标记最终应该看起来像这样:

<cc1:TabPanel ID="TabPanel1" runat="server">
<Tabs>
<cc1:TabPage runat="server">this is a simple test</cc1:TabPage>
<cc1:TabPage runat="server">this is another simple test</cc1:TabPage>
</Tabs>
</cc1:TabPanel>

并且它不应允许任何不是 TabPage 的内容嵌套在 Tabs 属性中。

http://msdn.microsoft.com/en-us/library/9txe1d4x(v=VS.90).aspx是详细演示此技术的演练。

关于c# - ASP.NET Web 控件只允许特定内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com