【问题标题】:Prevent clearing of child controls in composite control防止清除复合控件中的子控件
【发布时间】:2013-09-21 02:31:36
【问题描述】:

我有一个自定义服务器控件,其标记如下所示:

<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 的值在按钮单击的事件处理程序中被清除。有人对这可能发生的地方有任何想法吗?谢谢

【问题讨论】:

  • 你能提供一些代码给我们看看吗?这是自定义控件开发的一个棘手方面,不看你的实现就很难说。
  • @JamesJohnson 什么代码最有用?这是一个相当大的代码库,但我可以为您提供任何必要的东西。

标签: c# asp.net viewstate servercontrols composite-controls


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多