ASP.NET用户控件列表/集合/数组属性

zhe*_*zhe 6 asp.net user-controls properties list

我创建了用户控件.它有string[]公共财产(可能是List<string>或其他).我想支持在声明此usercontrol的实例时在aspx代码中定义此属性.像这样的东西:

<uc1:MyControl ID="MyControl1" runat="server">
    <MyStringCollectionProperty>
        <string>My String 1</string>
        <string>My String 2</string>
        <string>My String 3</string>
    </MyStringCollectionProperty>
</uc1:MyControl>
Run Code Online (Sandbox Code Playgroud)

如何使它工作?谢谢...

小智 6

您实际上可以使用TypeConverterAttribute来指定转换器类(在本例中为StringArrayConverter).


dav*_*ave 0

根据您的示例,通过在标记中显式输入变量值,您可以直接将 UI 与逻辑相结合。

如果这些值永远不会改变,那么将它们放入标记中就没有意义——最好将它们放入用户控件的代码中。

如果每次用户控件加载时这些值可能不同,那么它们应该来自动态源,例如会话状态变量、公共变量、控件值等。(在这种情况下,您的用户控件将分别查找它们加载时间。)

如果这些值仅在设计时更改,您仍然可以如上所述将它们设置为 onload,但在这种情况下您可能会考虑构建“自定义控件”。

无论如何,不​​确定您到底想要实现什么目标,所以希望这些选项之一可以有所帮助。

祝你好运