我有一个用户控件只包含一个文本框,而在另一个表单上我动态添加了这个用户控件,用户可以多次添加用户控件。我使用会话变量重新创建用户控件(也许这种方法听起来不错)。重新创建控件后,文本框的值显然消失。有没有解决方案可以在回发时保持用户控件的状态?保持回发时动态添加用户控件的状态?
回答
我以前也遇到同样的问题。
我所做的是给动态添加的控件ID,并确保它在回发时也保留该ID(在我的情况下,我保留了会话中的所有信息并重新创建了控件) 。
一旦回发后的控件具有与以前相同的ID,Microsoft就做了魔术并用预回发值重新填充了控件。
我知道这是一个旧的职位。但是,如果你能以一个例子来帮助我,那将会很好。我在这里有几乎类似的问题。 http://stackoverflow.com/questions/40058699/how-to-re-use-already-bound-data-in-a-user-control-on-post-back 我能够将它存储在会话中,但我无法将它绑定。 – thebenman
使用对象缓存。将usercontrol添加到缓存中,并在需要时将其检索出来。
你可以看到这是如何工作的一个很好的例子:ASP.net-Tutorials Cache and Object Cache.
我也学习asp.net现在,发现相当不错的解释。我还使用了Microsoft Library
不要这样做:-)不应该将缓存用作主存储,只用于您可以在需要时放回的内容。如果ASP.NET进程因某种原因决定进行回收,而会话和视图状态将继续存在,则缓存可以消失。 –
我明白了,谢谢你的提示,一定会记得这一点。 – William
如果正确Page Life Cycle事件(PreInit
),他们将通过IPostBackDataHandler
接口保持自己的状态过程中添加动态控件回控制。
PreInit - 创建或重新创建动态控件。
这似乎是个好建议;然而,在这个阶段所有的控件仍然是“空”的。那么,如何将一个动态控件添加到一个空的'Placeholder'控件? –
继承的IPostBackDataHandler接口具有的LoadPostData方法处理该回发数据每个服务器控制。当一个类(页面,表单,占位符,控件等)实现控制时,该类将调用方法并传递发布的数据和密钥以保持控制状态。
所有你需要做的是在页面加载事件之前或之内重新实例化/重新初始化动态控件,每次在回发期间并将此控件添加到页面/窗体/占位符。然后通过父控件调用LoadPostData方法将发布的数据自动分配给控件。
检查这篇文章以了解如何编写代码,动态控制 - How to maintain dynamic control events, data during postback in asp.net
请修正你的语法;你没有大写字母,也没有标点符号,而且句法可怕。如果没有人能理解,你的答案是无用的。 – ragingasiancoder
- 1. 动态用户控件在回发时保留状态
- 2. 保留动态添加用户控件的状态
- 3. 如何保持动态添加控件ater回发? Javascript,JSP
- 4. 在回发之间保持动态控制状态
- 5. 在视图状态下持久动态加载用户控件
- 6. 返回按钮返回到动态添加控件的状态
- 7. 保存加载用户控件动态视图状态
- 8. 动态添加控件不做回发
- 9. 如何通过在asp.net中回发来保持用户控件的状态?
- 10. 回发的动态用户控件Asp.Net
- 11. 视图状态的问题时,在ASP.net动态添加控件
- 12. 保存状态动态用户控件...帮助!
- 13. 添加用户控件动态
- 14. 动态添加网页用户控件
- 15. 动态添加用户控件和ViewState
- 16. 动态添加用户控件
- 17. 如何动态添加用户控件中的用户控件
- 18. 异步回发上的动态用户控件保存
- 19. 添加到DOM后保持状态
- 20. 按钮在重新添加到DOM时保持活动状态
- 21. CSS:悬停状态在返回后保持活动状态(Firefox)
- 22. 配置保持活动状态始终保持连接状态
- 23. 在回发后保持动态添加元素
- 24. 在.net用户控件下拉不保持状态
- 25. 保持登录用户的状态
- 26. 在回发中加载特定的动态用户控件
- 27. Android保持活动状态
- 28. 保持css动画状态
- 29. ASP.NET动态添加用户控件并保存到数据库
- 30. 动态添加控件消失回传
[可能重复数据删除(http://stackoverflow.com/questions/113392/dynamically-added-controls-in -asp-net) –
视图状态是首选方法。 –