UserControl与控件内部集合

时间:2011-10-28 13:34:01

标签: asp.net user-controls customization

我需要在里面创建带有<asp:ScriptReference />集合的UserControl。
不允许更多元素(必须由设计师支持)。

1 个答案:

答案 0 :(得分:0)

您是否在询问是否可以在Web用户控件的标记中嵌套子元素?:

<uc1:MyUserControl ID="MyUserControl1" runat="server">
    <ScriptReferences>
        ...
    </ScriptReferences>
</uc1:MyUserControl>

以上答案是。您不能在Web用户控件中嵌套子元素。如果您需要该功能,则可以开发自定义服务器控件。您需要使用PersistenceMode属性来完成它。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerProperty)]
public ScriptReferenceCollection ScriptReferences
{
    get
    {
        if (scriptReferenceCollection == null)
        {
            if (scriptReferenceArrayList == null)
            {
                this.EnsureChildControls();
                if (scriptReferenceArrayList == null)
                    scriptReferenceArrayList = new ArrayList();
            }
            scriptReferenceCollection = new ScriptReferenceCollection(scriptReferenceArrayList);
        }
        return scriptReferenceCollection;
    }
}