Asp.net 在OnLoadComplete中添加动态链接按钮上的ClickEvent

Asp.net 在OnLoadComplete中添加动态链接按钮上的ClickEvent,asp.net,click,linkbutton,dynamic-controls,Asp.net,Click,Linkbutton,Dynamic Controls,我正在ASP.Net中创建一个文件浏览器,但我遇到了一个问题,我相信这与动态控件上的事件连接有关。我将在这里解释我的代码的作用: 当我的页面加载(OnLoad)时,我调用一个方法(createStuff()),该方法创建大量链接按钮(表示当前目录中的文件夹),这些按钮连接到一个事件,该事件将当前目录更改为与链接按钮关联的目录 由于调用OnLoad后会触发linkbutton click事件(因此当前目录在OnLoad后首先更改),因此linkbutton不会更新以反映新的当前目录(它们是在cli

我正在ASP.Net中创建一个文件浏览器,但我遇到了一个问题,我相信这与动态控件上的事件连接有关。我将在这里解释我的代码的作用:

当我的页面加载(OnLoad)时,我调用一个方法(createStuff()),该方法创建大量链接按钮(表示当前目录中的文件夹),这些按钮连接到一个事件,该事件将当前目录更改为与链接按钮关联的目录

由于调用OnLoad后会触发linkbutton click事件(因此当前目录在OnLoad后首先更改),因此linkbutton不会更新以反映新的当前目录(它们是在click事件更改当前目录之前创建的)。因此,我还在OnLoadComplete中调用createStuff(),从而更新链接按钮并反映新的当前目录中的文件夹

但是(这是我的问题)当在OnLoadComplete中调用该方法时,我在createStuff()中执行的事件连接(单击+=新建事件处理程序(changeDirectory))似乎不起作用(OnLoadComplete是在触发linkbutton Click事件后调用的)。结果是,虽然linkbuttons的text属性反映了新目录中的文件夹,但单击linkbuttons不会触发事件

我如何解决这个问题?我尝试在OnLoad中重新连接linkbutton上的事件,但结果相同

先谢谢你


丹麦西蒙

一致设置LinkButton的
ID
属性

此行为的两个常见原因是(1)缺少事件处理程序和(2)缺少ID属性。由于您确定事件处理程序在
OnLoad
期间被附加,因此缺少ID属性可能是罪魁祸首


当用户单击客户端上的LinkButton时,将向按ID命名LinkButton的服务器发送回发。如果不能确保控件在回发之间具有相同的ID,则可能无法引发事件处理程序。

一致地设置LinkButton的
ID
属性

此行为的两个常见原因是(1)缺少事件处理程序和(2)缺少ID属性。由于您确定事件处理程序在
OnLoad
期间被附加,因此缺少ID属性可能是罪魁祸首


当用户单击客户端上的LinkButton时,将向服务器发送回发,该服务器按ID命名LinkButton。如果无法确保控件在回发之间具有相同的ID,则可能无法引发事件处理程序。

请提供一些示例代码?具体来说,我想知道您是否为在createStuff()中动态创建的控件指定了ID值。您好,感谢您的评论,这里是createStuff()-方法:正如您所看到的,我没有指定ID值。您能提供一些示例代码吗?具体来说,我想知道您是否为在createStuff()中动态创建的控件指定了ID值。您好,感谢您的评论,这里是createStuff()-方法:正如您所看到的,我没有指定ID值。我只需在linkbutton click事件发生后将浏览器重定向到页面,就解决了这个问题(FileSystemBrawser存储在会话变量中)。但我认为您的解决方案(哪个有效)更好,感谢您的帮助!我只需在linkbutton click事件发生后将浏览器重定向到页面即可解决问题(FileSystemBrawser存储在会话变量中)。但我认为您的解决方案(哪个有效)好多了,谢谢你的帮助!