[英]asp.net server controls
好的,我有一个具有一些自动完成设置的自定义服务器控件,我具有以下内容,并且工作正常。
/// <summary>
/// Auto complete settings
/// </summary>
[System.ComponentModel.DesignerSerializationVisibility (System.ComponentModel.DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
Category("Data"), Description("Auto complete settings"), NotifyParentProperty(true)]
public AutoCompleteLookupSettings AutoComplete { private set; get; }
我也有一个与自动完成设置真正相关的ParameterCollection,当前该集合位于控件本身之外,如下所示:
/// <summary>
/// Parameters for any data lookups
/// </summary>
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content), PersistenceMode(PersistenceMode.InnerProperty)]
public ParameterCollection Parameters { get; set; }
我想做的是将参数集合移到AutoCompleteSettings内部,因为它实际上与我的自动完成功能有关,我已经尝试过了,但无济于事。
我想从
<cc1:TextField ID="TextField1" runat='server'>
<AutoComplete MethodName="GetTest" TextField="Item1" TypeName ="AppFrameWork.Utils" />
<Parameters>
<asp:ControlParameter ControlID="txtTest" PropertyName="Text" Name="test" />
</Parameters>
</cc1:TextField>
至
<cc1:TextField ID="TextField1" runat='server'>
<AutoComplete MethodName="GetTest" TextField="Item1" TypeName ="AppFrameWork.Utils" >
<Parameters>
<asp:ControlParameter ControlID="txtTest" PropertyName="Text" Name="test" />
</Parameters>
</AutoComplete>
</cc1:TextField>
我认为您正在寻找的是ParseChildren属性。
[ParseChildren(true, "Parameters")]
如果使用此属性标记类,它将尝试将标记解析为子集合,并将其分配给名为“ Parameters”的属性。 我链接的页面上有一个很好的例子。
另一个答案中提到的PersistenceMode属性实际上是指示VS设计器在生成标记时正确呈现child属性。 我不相信它会产生您想要的效果。
为此,您需要将ParameterCollection设置为AutoComplete对象的属性。 我不确定100%,但是ParameterCollection对象声明可能需要
[PersistenceMode(PersistenceMode.InnerProperty)]
属性。 试试看 ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.