0

我有一个自定义服务器控件,标记看起来像这样:

<myLib:MyControl id="myid" runat="server">
    <controls>
        <asp:Textbox id="TxtTest" runat="server" />
        <asp:Button id="cmdTest" runat="server" />
    </controls>
</myLib:MyControl>

控件属性如下所示:

[PersistenceMode(PersistenceMode.InnerProperty)]
public List<Control> controls { get; set; }

由于我不完全理解的原因,如果我通过单击 cmdTest 触发回发,则 txtTest 的值在按钮单击的事件处理程序中被清除。有人对这可能发生的地方有任何想法吗?谢谢

4

1 回答 1

0

对于将来可能偶然发现此问题的任何人,我遇到的问题仅在于文本框和其他输入,其值可能会在驻留在客户端的页面期间发生更改。问题是(由于不必要的复杂设计),我在页面加载后将一些子控件移动到文档正文。这导致它们在提交时不会驻留在表单中,并且值没有被持久化。

于 2013-09-18T20:09:37.213 回答