为什么我的自定义ASP.Net控件成为回发后的基本控件?

时间:2014-03-12 00:58:26

标签: asp.net custom-controls postback

为了自定义TreeView控件中某些节点的方面,我创建了一个从TreeNode类派生的自定义控件,它覆盖了RenderPreText和{{1方法。

这很好用......直到用户点击页面中的任何内容。一旦回发,所有TreeNodes都会丢失其自定义方面。

我已经使用调试器检查了代码,并且我发现所有RenderPostText都是作为TreeNode对象创建的,但是在回发后它们才成为标准{{1} }第

这里发生了什么?!?

1 个答案:

答案 0 :(得分:1)

答案发现,如此处所述:http://support.microsoft.com/kb/2527108

创建从TreeNode派生的自定义控件是不够的,还需要另外两个步骤:

  • 启用控件以在视图状态中保存其附加属性。
  • 创建另一个派生自TreeView的自定义控件,该控件知道如何在发生回发时重新创建这些自定义TreeNode