Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# aspnet用户控件集合_C#_Asp.net_User Controls - Fatal编程技术网

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中为了获得更好的解决方案,您可以创建一个自定义控件来添加这样的值。请参阅我的编辑。