如何在C#上创建ImageButton时向其添加事件?
我正在尝试生成一个表,每行上都有一个ImageButton 行取决于我从日历对象进行的查询的类型 我的问题是,当我生成imagebutton时,我无法设置“onClick”事件以在类内激发方法 这是我的代码:如何在C#上创建ImageButton时向其添加事件?,c#,asp.net,C#,Asp.net,我正在尝试生成一个表,每行上都有一个ImageButton 行取决于我从日历对象进行的查询的类型 我的问题是,当我生成imagebutton时,我无法设置“onClick”事件以在类内激发方法 这是我的代码: ImageButton test = new ImageButton(); test.Click += new ImageClickEventHandler(borraCita); test.ImageUrl = "~/Images/jumo.png"; test.Attributes.A
ImageButton test = new ImageButton();
test.Click += new ImageClickEventHandler(borraCita);
test.ImageUrl = "~/Images/jumo.png";
test.Attributes.Add("runat", "server");
再次感谢:)我不明白这为什么行不通。你把它添加到页面了吗
this.form1.Controls.Add(test);
另外,您是否看到任何JS错误?你用Firebug评估过吗?我们可能需要更多的代码来帮助您,因为我看不出有什么理由不起作用
您是在页面的代码隐藏的PreInit方法中这样做的吗?如果没有,您可能希望将逻辑放在那里,因为在此之后的任何动态内容都将被忽略。您的服务器端单击处理程序已使用事件设置为
borraCita
。另外,您不需要为runat=server
添加属性
ImageButton test = new ImageButton();
// this is your server side click handler:
test.Click += new ImageClickEventHandler(borraCita);
test.ImageUrl = "~/Images/jumo.png";
// add the image to the appropriate control:
someControl.Controls.Add(test);
如果需要添加客户端事件处理程序,可以使用:
一排什么?如果您使用的是GridView,您最好在那里定义按钮(在标记中),因为您可以轻松地在那里分配事件。您不必在标记中设置
OnClick
,因为您已经在代码中使用Click
添加处理程序。此外,您不必在代码中添加runat=server
,这是自动完成的。实际上,在PreInit之后,所有内容都将被忽略。Page_Init是在asp.net pages生命周期中从codebehing添加动态控件的最后一个位置;)您也可以这样编写this.Controls.Add(test)代码>与@Tony write的意思相同
test.OnClientClick= "someJavascriptFunction();";