C# aspnet用户控件集合
我有一个用户控件,如:C# aspnet用户控件集合,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个用户控件,如: <my:menu ID="menu" runat="server"> </my:menu> 现在我需要在用户控件中存储一个集合,如: <my:menu ID="menu" runat="server"> <values> <value>aaa</value> <value>aaa</value> </values>
<my:menu ID="menu" runat="server">
</my:menu>
现在我需要在用户控件中存储一个集合,如:
<my:menu ID="menu" runat="server">
<values>
<value>aaa</value>
<value>aaa</value>
</values>
</my:menu>
aaa
aaa
但我不确定如何构建结构来保存值并读取usercontrol页面加载中的值
我试图创建一个公共类values,其中包含一个公共值。但它不起作用
任何提示?您需要在Cals上设置
[ParseChildren(true,“Values”)]
属性,也需要在属性上设置[PersistenceMode(PersistenceMode.InnerProperty)]
属性。您可以在usercontrol的代码隐藏中创建任何类型的公共属性
public string MenuValues
{
get
{
return _menuValues;
}
set
{
_menuValues = value;
}
}
然后您可以这样设置它们:
<my:menu ID="menu" runat="server" MenuValues="A,B,D,W,Q,R" />
<uc1:MyUserControl ID="MyUserControl1" runat="server">
<ScriptReferences>
...
</ScriptReferences>
</uc1:MyUserControl>
然后我可以添加如下脚本引用:
<my:menu ID="menu" runat="server" MenuValues="A,B,D,W,Q,R" />
<uc1:MyUserControl ID="MyUserControl1" runat="server">
<ScriptReferences>
...
</ScriptReferences>
</uc1:MyUserControl>
...
这可以通过使用来完成。请查看。我认为您最好选择List类型的公共属性,并将其设置在“代码隐藏”中。我不确定在标记中设置它会带来什么价值。这并不是你想要的,虽然承认这不只是针对自定义控件而不是用户控件吗?是的,这不适用于用户控件。您不能将自己的子控件嵌套在usercontrol中。需要一个自定义服务器控件。它应该可以工作,但您应该在UserControl代码中添加控件,如下foreach(值中的var项)控件。添加(项)
在page Load中为了获得更好的解决方案,您可以创建一个自定义控件来添加这样的值。请参阅我的编辑。