C# asp.net按钮不会触发OnClick事件

C# asp.net按钮不会触发OnClick事件,c#,.net,visual-studio-2010,C#,.net,Visual Studio 2010,我认为这个问题很容易解决,因为我记得以前有过这个问题,但不记得我做了什么 我决定放弃一个特定的asp.net页面,在另一个现有页面(几个文本框和两个按钮)上合并它的一些控件,复制并粘贴它们,然后添加代码 由于这样做,我修改过的页面上没有一个按钮触发OnClick事件,所以我尝试添加一个新的按钮,但也没有触发 这些按钮背后的实际代码很简单——保存一条记录,response.redirect,诸如此类的东西 有什么想法吗 谢谢 按钮标记 <asp:Button ID="Button1" run

我认为这个问题很容易解决,因为我记得以前有过这个问题,但不记得我做了什么

我决定放弃一个特定的asp.net页面,在另一个现有页面(几个文本框和两个按钮)上合并它的一些控件,复制并粘贴它们,然后添加代码

由于这样做,我修改过的页面上没有一个按钮触发OnClick事件,所以我尝试添加一个新的按钮,但也没有触发

这些按钮背后的实际代码很简单——保存一条记录,response.redirect,诸如此类的东西

有什么想法吗

谢谢

按钮标记

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Save" 
                Width="91px" />

因为您在代码隐藏中定义了委托,特别是OnClick事件

您必须复制此代码

Button.Click += .....
您可以在aspx视图或您的代码隐藏中关联此委托,因为您的案例是在代码隐藏中创建的,您不需要复制


如果进行复制粘贴,请验证aspx的代码文件。以下是一些您可以尝试的方法。没有保证,但可能是朝着正确的方向推进:)

打开Visual Studio和有问题的ASP.NET页面。在设计器中,单击该控件,转到“属性”框,并查找OnClick事件。如果为空,请在框中单击并从可用的下拉列表中选择要附加的事件处理程序。如果列表中没有事件,只需双击以查看VisualStudio是否将为您创建一个默认事件处理程序,然后将以前的onClick处理程序中的代码粘贴到该新方法中

希望有帮助

EditPer later comments表明,来自不同ASP.NET页面的代码隐藏的完整副本和粘贴可能创建了与新页面上标记的代码文件或继承指令不匹配的部分类声明,这可能会导致各种奇怪的行为。

不是吗
OnClick=“Button1\u Click”
区分大小写?您是否尝试过在事件处理程序中设置断点,以查看它是否触发?这可能是一个
页面加载
问题吗?你做的事情没有

if (!Page.IsPostBack)

你能发布按钮的标记和它们绑定到的onclick事件吗?这里介绍了最常见的原因-(AutoEventWireup和手动连接事件处理程序)谢谢,我将进行通读验证你的aspx代码文件是否与后面的代码匹配你能发布.aspx的page指令吗?因为@CandieIn在本例中是一个好的委托,所以事件委托是在
*.aspx
标记中定义的。你的解决方案是在代码隐藏中创建一个按钮,或者在代码隐藏中手动绑定事件。不,这不是我的答案,因为Theresa有触发问题,我告诉你有两个解决方案:1在aspx视图上定义Onclick,或者在页面的Init事件中定义Onclick。在她的情况下,如果她已经复制粘贴了视图,那么Onclick就在副本中,所以她定义了OnClick-in-th-code-behind->所以如果她只是复制了过去的视图,这是不够的,因为它可能是在代码behind中定义的,我知道你在那里说什么,但这是否解释了为什么我不能成功添加新按钮?我可以添加它们,但它们不会触发…验证您的ASPX的代码文件当我双击控件时,它会在控件单击事件中打开隐藏的代码,其中包含正确的代码-它似乎不会触发。您是否将整个代码复制并粘贴到新文件中?如果是这样,后面的页面可能会声明一个部分类名,该部分类名与标记上的“继承”声明中的部分类名不同。这可以解释所有奇怪的行为。我想你已经了解了一些事情。我撤消了所有更改,因此我将返回到一个完全工作的web应用程序,这次我将创建控件,而不是复制/粘贴!谢谢大家的评论!很高兴我至少能提供一些帮助。祝你好运我将修改我的回答,以纳入我最后一次评论的概念。
if (!Page.IsPostBack)