C# 如何以编程方式将单击事件分配给以编程方式创建的项目符号列表?
我试图以编程方式编写一个方法,并将其指定为在onclick事件中调用的方法,但这里有些不对劲。未调用该方法C# 如何以编程方式将单击事件分配给以编程方式创建的项目符号列表?,c#,C#,我试图以编程方式编写一个方法,并将其指定为在onclick事件中调用的方法,但这里有些不对劲。未调用该方法 BulletedList bulletList=新建BulletedList() 我使用bulletList.items.Add(…)将项目添加到项目符号列表中 我试图用bulletList.Click+=newbulletedlistedventhandler(bulletList\u Click)编程分配bulletList\u Click方法 这是应该触发的方法 无效项目列表\单击(
BulletedList bulletList=新建BulletedList()代码>
我使用bulletList.items.Add(…)将项目添加到项目符号列表中代码>
我试图用bulletList.Click+=newbulletedlistedventhandler(bulletList\u Click)编程分配bulletList\u Click方法代码>
这是应该触发的方法
无效项目列表\单击(对象发送者,项目列表目标e)
{
//这里的代码
}
除非您创建了自己的特殊类来处理事件,否则您可能只是在寻找:
bulletList.Click+=新建事件处理程序(bulletList\u Click)
编辑:
实际上,你的命令是正确的。但是,在阅读您的上述注释(该注释是通过编程创建的)后,我有一个更新:
为了为以编程方式创建的对象注册事件,必须在page\u Init
事件期间创建事件并将其添加到页面上的控件中。如果不发生这种情况,对象将不会添加到viewstate,并且不会捕获任何事件
编辑2:
这帮我在最后一次需要的时候完成了。例如,根据控件处于ViewState的需要,指示为什么Page_Init事件是合适的。我在其他论坛的其他地方看到,通过确保每次回发控件都与上次加载页面时添加的控件相同,可以避免这种情况,但我尚未验证该功能。您是否尝试过从Visual Studio的拖放界面自动生成事件处理程序?就像选择控件,从右侧的事件列表中选择Click事件,然后在生成的处理程序中编写代码一样?您是使用VS之类的IDE还是手动编写代码?您好,我使用的是Visual Studio。此外,BulletList是以编程方式创建的。您好,我得到了一个无法将类型“System.EventHandler”隐式转换为“System.Web.UI.WebControls.bulletedListenthandler”
然后使用“System.Web.UI.WebControls.bulletedListenthandler”而不是“EventHandler”,否?是的。是的,看看我上面的问题,我使用了一个项目符号ListedEventHandler
@csl:我根据你的一条评论添加了一个编辑。问题中的代码在我看来很好,但很可能因为创建对象的时间而没有触发。您好,但是如果BulletedList是用Page\u Init
方法以外的其他方法创建的,会发生什么情况?