我有在我的页面上添加和删除按钮。 添加按钮将一个复选框,两个文本框和一个下拉列表添加到我的页面上的新行。 删除按钮删除它们。 我通过关注Joe Stagner's example可以很好地运行。在asp.net上使用ajax创建动态控件
问题: 动态创建的控件在选中时(对于复选框)都需要触发相同的事件,对于选定的索引更改(对于下拉列表)也是如此。
我试图添加事件处理程序,当我创建一个对象,但它似乎并没有火?
我有在我的页面上添加和删除按钮。 添加按钮将一个复选框,两个文本框和一个下拉列表添加到我的页面上的新行。 删除按钮删除它们。 我通过关注Joe Stagner's example可以很好地运行。在asp.net上使用ajax创建动态控件
问题: 动态创建的控件在选中时(对于复选框)都需要触发相同的事件,对于选定的索引更改(对于下拉列表)也是如此。
我试图添加事件处理程序,当我创建一个对象,但它似乎并没有火?
我想你可能会遇到这样一个事实,即每次发布页面时,页面都会被完全重新创建 - 本质上页面必须重复页面上的控件,才能尝试提供回发(和事件) 给他们。我认为你可能需要做的是向你的page_load添加代码,它将重新创建动态创建的控件,使用与它们相同的id,并注册事件处理程序。
您需要以某种方式[会话,视图状态等]为每个页面加载持久化动态创建的控件。重新创建动态控件并使用preInit函数中的每个页面加载上的委托重新绑定事件。
是的, 就像所有的说,这是生命周期问题。当您动态加载用户控件时,应始终执行以下操作。
,并让这一切更简单,我建议抽象加载到您将的Page_Load和Page_Init如前所述调用一个函数,这个函数会检查是否兴田目标用户控件加载,并再次将其装入为为此,您需要将加载的用户控件ID存储在Session或viewstate中。
希望这有助于。
如果你想这样做没有自动回发你可以删除自动回发,并扔在那里的ASP按钮。任何runat服务器都应该关闭动态事件处理程序。
如果您需要帮助,请展示您的工作。 – Kon 2009-04-30 17:27:29
问题解决了。 AutoPostBack = true在生成的控件上丢失。对不起,伙计们,asp.net对我来说是非常新的。我现在应该给谁正确的答案标记? :S – Ivan 2009-04-30 20:18:51