Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-ASP.NET按钮单击事件不工作_C#_Asp.net_Event Handling_Obout - Fatal编程技术网

C#-ASP.NET按钮单击事件不工作

C#-ASP.NET按钮单击事件不工作,c#,asp.net,event-handling,obout,C#,Asp.net,Event Handling,Obout,我有一个ASP.NET(C#)页面,其中包含一些第三方控件、一些ajaxy内容和一些普通的ASP.NET按钮控件 单击按钮时不会触发单击事件。 在VS2008中,在设计模式下双击按钮会切换到代码隐藏,但不会创建事件处理程序 手动创建事件处理程序没有帮助 整个页面太大,无法包含在此处,但这是最上面的部分: <%@ Page Language="C#" MasterPageFile="~/basewidepage2.master" AutoEventWireup="true" EnableEv

我有一个ASP.NET(C#)页面,其中包含一些第三方控件、一些ajaxy内容和一些普通的ASP.NET按钮控件

单击按钮时不会触发单击事件。

在VS2008中,在设计模式下双击按钮会切换到代码隐藏,但不会创建事件处理程序

手动创建事件处理程序没有帮助

整个页面太大,无法包含在此处,但这是最上面的部分:

<%@ Page Language="C#" MasterPageFile="~/basewidepage2.master" AutoEventWireup="true" EnableEventValidation="false" CodeFile="CompanyCompliance.aspx.cs" Inherits="CompanyCompliancePage" Title="3DSS" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register Assembly="obout_Grid_NET" Namespace="Obout.Grid" TagPrefix="cc2" %>
<%@ Register Src="usercontrols/CalendarEx.ascx" TagName="CalendarEx" TagPrefix="uc2" %>
<%@ MasterType VirtualPath="~/basewidepage2.master" %>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceholder1" runat="Server">

    <script type="text/javascript">
         // a bunch of function declarations
    </script>
有什么想法吗?可能是ajax还是别的什么?也许是第三方“obout”网格控制

更新:
我确实在一两个月前修复了这个问题,所以我回到这个问题上来为子孙后代回答它,但我不记得我是如何修复它的!(诅咒你,老年人!)我用jQuery UI控件替换了一些ASP.NET AJAX控件,但我认为真正的解决方案是其中一个标记中的一个属性指向一个不再存在的控件

如果您遇到同样的情况,请尝试一下,并让我知道评论中的内容,我将发布正确答案。

更改

CodeFile="CompanyCompliance.aspx.cs" 


相关问题:

inherits指令似乎指向一个不存在的类型

查看CompanyCompliance页面的代码隐藏文件-(“CompanyCompliance.aspx.cs”)


您应该找到正确的名称空间和类似“public partial class xxx”的内容,其中xxx是类的名称,它应该与您的inherits指令相对应。可能您必须完全限定TJB已经声明的名称。

最近遇到了相同的问题-原因最终确定为按钮被juavascript方法onbeforesubmit禁用(设计用于防止多次提交),不幸的是,web窗体似乎在允许触发codebehind事件之前检查按钮的启用状态。

在调试过程中,请检查按钮的CausesValidation属性。出于某种原因,我的一个页面上有一个默认为“True”的按钮。当我显式地将其设置为“False”时,一切正常。

我刚才遇到了这个问题,它是由另一个控件的AutoPostBack=“True”引起的它将在按钮有机会提交表单以触发点击事件之前提交表单。

我知道现在应该解决这个问题,但我只是想与大家分享一下——我刚刚遇到了一个类似的问题。在我的例子中,问题是我在页面中有一个
RequiredFieldValidator
,它不可见,因为它是弹出窗口的一部分。该验证器本应仅在单击其相关的“保存”按钮时调用,但由于我没有设置任何
ValidationGroup
,它将阻止页面提交任何单击的按钮。将
ValidationGroup
添加到右侧按钮解决了此问题。

对于未来的答案寻求者:如果您在代码隐藏中分配单击处理程序,请确保它不在IsPostBack==假检查中:

void Page_Load (object oSender, EventArgs oEventArgs)
{
   if (IsPostBack == false)
   {
       oButton += new EventHandler(oButton_Click); // does not work
   }
   oButton += new EventHandler(oButton_Click); // does work
}

我遇到了这个问题,我更改了按钮属性“UseSubmitBehavior”=false。现在它开始工作了。

我也遇到了类似的问题,而且非常棘手。我最近将VS 2005 ASP.NET 2.0 web表单应用程序迁移到VS 2010 ASP.NET 4.0

很难像预期的那样进行设置和调试,但是按钮不触发点击事件的问题让我很紧张

最后,简单到不在site.master表单中声明提交操作。我改变了:

<FORM runat="server" name="MainForm" method="post" action="Default.aspx" id="m_mainForm" enctype="multipart/form-data">



轰。问题解决了。我希望它能为某些人节省几天的故障排除时间。遗憾的是,我自己在互联网上找不到任何关于它的信息。

是否有任何JS可以拦截并取消表单提交?页面上声明了一些JS函数,但是页面加载时没有运行任何东西-这就是我要寻找的吗?这可能是由于页面上的某种ajax控件干扰了帖子。开始删除控件,直到开始执行事件。谢谢,但它没有编译,我得到“无法加载类型'CompanyCompliancePage'。CompanyCompliance.aspx 1”。这可能是因为VS2008(asp.net 3.5)中使用了分部类作为代码隐藏页吗?是否有.designer.cs类?还要确保Inherits=“CompanyCompliancePage”与您的类名匹配,您可能需要完全限定它。。。如果所有其他操作都失败,请重命名当前页面,然后执行添加>新建项目>Web内容表单>将其命名为“CompanyCompliance”,确保您只需插入一个按钮并调用onclick处理程序,一旦成功,然后从现有页面复制尽可能多的标记/代码。我认为designer.cs和codebeahind=“”主要是针对旧版本的.net。。。你的链接似乎就是这么说的。这不对吗?您使用的是ASP.net web表单(传统)还是ASP.net mvc?最新版本的Web Froms仍然使用我上次检查的代码。。。我只是偶然发现了这个链接,认为它可能有用,但我认为它比你说的更复杂。不,自2005年以来,web表单一直使用codefile而不是codebehind。无论如何谢谢。谢谢,但是在发布问题之前检查了所有这些,类型存在。以后,请在您的答案中更详细。如果你能解释一下你做了什么以及为什么要这么做,最好是用代码和/或官方文档,这对每个人都会有很大的帮助。
CodeBehind="CompanyCompliance.aspx.cs"
void Page_Load (object oSender, EventArgs oEventArgs)
{
   if (IsPostBack == false)
   {
       oButton += new EventHandler(oButton_Click); // does not work
   }
   oButton += new EventHandler(oButton_Click); // does work
}
<FORM runat="server" name="MainForm" method="post" action="Default.aspx" id="m_mainForm" enctype="multipart/form-data">
<FORM runat="server" name="MainForm" method="post" id="m_mainForm" enctype="multipart/form-data">