我有一个自定义服务器控件,标记看起来像这样:
<myLib:MyControl id="myid" runat="server">
<controls>
<asp:Textbox id="TxtTest" runat="server" />
<asp:Button id="cmdTest" runat="server" />
</controls>
</myLib:MyControl>
controls属性如下所示:
[PersistenceMode(PersistenceMode.InnerProperty)]
public List<Control> controls { get; set; }
由于我不完全理解的原因,如果我通过单击cmdTest触发回发,则会在按钮单击的事件处理程序中删除txtTest的值。有没有人对这可能发生的地方有任何想法?感谢
答案 0 :(得分:0)
对于任何可能在将来偶然发现这种情况的人来说,我遇到的问题只出现在文本框和其他输入上,而这些输入的值可能会在驻留在客户端的页面中发生变化。问题是(由于设计不必要的复杂),我在页面加载后将一些子控件移动到文档的主体。这导致它们在提交时不会驻留在表单中,并且值不会被持久化。