在回发时保持动态添加的用户控制?我有一个只包含文本框的用户控件,在另一种形式上我动态添加了这个用户控件,用户可以多次添加用户控件。我使用会话变量来重新创建用户控件(也许这种方法听起来不太酷)。重新创建控件后,文本框的值显然消失了。是否有任何解决方案来维护用户控件的回发状态?我过去也遇到过同样的问题。我所做的是为动态添加的控件提供一个ID,并确保它在回发时也保留该ID(在我的例子中,我将所有信息保留在会话中并重新创建控件)。一旦回发控件具有与以前相同的ID,Microsoft就会施展魔法并使用回发前的值重新填充控件。如果在正确的页面生命周期事件(PreInit)期间将动态控件添加回控件,它们将通过IPostBackDataHandler接口维护它们的状态。PreInit–创建或重新创建动态控件。使用对象缓存。将用户控件添加到缓存中并在需要时检索它。你可以看到一个很好的例子它是如何工作的:ASP.net-TutorialsCacheandObjectCache。我现在也在学习asp.net并找到了很好的解释。我还使用了MicrosoftLibrary继承的IPostBackDataHandler接口每个服务器控件都有一个处理回发数据的LoadPostData方法。当控件由类(页面、窗体、占位符、控件等)实现时,该类调用LoadPostData方法并传递发布的数据和键以维护控件状态。您需要做的就是每次在页面加载事件之前或之内的回发期间重新实例化/重新初始化动态控件,并将此控件添加到页面/表单/占位符。然后,通过父控件调用LoadPostData方法会自动将发布的数据分配给控件。看看这篇文章来学习如何编写动态控件——如何在asp.net中的回发期间维护动态控件事件和数据如果所有分享的内容对你有用,你需要了解更多关于C#的学习教程,我希望你会多注意它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
