如何以编程方式将点击事件分配给以编程方式创建的项目符号列表?

时间:2011-11-08 12:52:35

标签: c#

我试图以编程方式编写一个方法并将其指定为一个onclick事件调用的方法,但这里有些东西不对。该方法未被调用。

BulletedList bulletList = new BulletedList();

我使用bulletList.Items.Add(...);

将项目添加到项目符号列表中

我尝试使用bulletList.Click += new BulletedListEventHandler(bulletList_Click);

以编程方式分配bulletList_Click方法

这是应该被触发的方法

  

void bulletList_Click(object sender,BulletedListEventArgs e)   {      //代码在这里   }

2 个答案:

答案 0 :(得分:4)

除非您为处理事件而创建了自己的特殊类,否则您可能只是在寻找:

bulletList.Click + = new EventHandler(bulletList_Click);

修改
实际上你已经正确地掌握了你的命令。但是,阅读上面的评论,它是以编程方式创建的,我有一个更新:

要为以编程方式创建的对象注册事件,必须在Page_Init事件期间创建事件并将其添加到页面上的控件。如果没有发生这种情况,则不会将对象添加到视图状态,也不会捕获任何事件。

编辑2:
Here is an article on 4GuysFromRolla帮助我在上次需要时完成了这项工作。 Here is the followup article表示为什么Page_Init事件适合于根据需要在ViewState中拥有控件。我在其他论坛的其他地方已经看到,可以通过确保每次回发控件的添加方式与上次加载页面的方式相同来避免这种情况,但我还没有验证该功能。

答案 1 :(得分:1)

您是否尝试过使用Visual Studio的拖放界面自动生成事件处理程序?就像选择控件一样,从右边的事件列表中选择Click事件,然后只在生成的处理程序中编写代码?