【发布时间】:2011-01-23 11:26:53
【问题描述】:
假设我有一个树视图,其中每个树节点包含一组不同用户控件的 id。当用户点击一个节点时,这些控件应该被加载到页面中。据我了解 ASP 页面生命周期,应该在初始化阶段添加动态控件,稍后会触发回发事件。
那么如果treeview点击事件发生在我需要添加控件之后,如何根据用户回发事件动态添加控件呢?
编辑:我尝试了 ArronLS 的建议:
我所做的是将节点值添加到会话数组中,并在我执行初始化时使用它来选择将哪些表单元素加载到占位符控件的控件中。在树视图单击事件上,我更新会话数组中的节点,清除占位符中的旧表单元素,并将新的表单元素添加到控件中。当页面再次加载时,它现在应该在初始化时找到节点,因此可以避免视图状态问题。
现在我还没有完全测试这个,但是还有另一个similar post 讨论了视图状态可能导致的问题。他们提出了一种解决方案,该解决方案在 Init 控件中轮询上下文的 Request[] 部分(在他们的情况下为保管箱),手动处理一些回发功能。
我的新问题是如何使用请求数组访问树视图中的选定节点?
【问题讨论】:
标签: c# asp.net event-handling dynamic-controls