问题描述
我已经把一个简单的表格,突出动态表单的概念。我需要做的就是将控件添加到页面,当用户点击添加按钮。
我有一个存储的控制产生的量,点击按钮时被递增的那一刻简单的计数器。
起初我以为它会和调用RecreateChildControls(类自CompositeControl继承)的事件处理程序一样简单。这确实创建基于递增的值的新的控制,但所有的控制状态会丢失。我猜想这是因为事件已经初始化和放大器之后被解雇;装载阶段。
是否有任何其他方式做到这一点?我可以得到它的初始化事件检查回发值继续工作,然而这似乎有点哈克。
You're calling the function too late in the page life cycle. State is applied to your controls for the "Load" stage, and so if the controls are not created before that stage the state won't be restored, because the controls don't exist when it tries to apply the state.
You need to create the controls in the Page's Init event.
Personally, I'm not a fan of dynamic controls in ASP.Net. They have their place, but more often I choose a suitable maximum number of allowed controls, put them all on the page initially, and only enable/disable/hide/show them as needed.
这篇关于ASP.NET控件添加回发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!