Ho una pagina ASP.NET (C#) con alcuni controlli di terze parti, alcuni elementi ajaxy e alcuni normali controlli del pulsante ASP.NET.C#: evento di clic sul pulsante ASP.NET non funzionante
Gli eventi di clic sul pulsante non vengono attivati quando si fa clic.
Fare doppio clic sul pulsante in modalità progettazione in VS 2008 passa al code-behind ma non crea il gestore eventi.
La creazione manuale del gestore eventi non aiuta.
L'intera pagina è troppo grande per includere qui, ma questo è il bit superiore:
<%@ 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>
... e la mia dichiarazione pulsante nella pagina:
<asp:Button ID="LicenseCsvButton" runat="server" Text="Export to CSV" OnClick="LicenseCsvButton_Click" />
... e il code-behind:
protected void LicenseCsvButton_Click(object sender, EventArgs e)
{
// get data
CompanyCompliance cc = new CompanyCompliance(Master.theCompany.ID);
DataTable dt = cc.BusinessLicenses.Tables[0];
// send to browser as download
Tools.SendTableAsCsvToBrowser(Response, dt, "LicenseData");
}
Qualche idea? potrebbe essere l'ajax o qualcosa del genere? Forse il controllo di rete "obout" di terze parti?
Aggiornamento:
ho risolvere questo problema un mese o due fa, quindi sono tornato a questa domanda a cui rispondere per i posteri, ma non riusciva a ricordare esattamente come ho fissato! (Maledizione, vecchiaia!) Ho avuto un certo successo sostituendo alcuni dei controlli AJAX di ASP.NET con quelli di jQuery UI, ma penso che la vera soluzione fosse che una delle proprietà in uno dei tag puntava a un controllo che non esisteva più
Se vi trovate in questa stessa situazione, provatelo e fatemi sapere cosa funziona nei commenti e posterò la risposta corretta.
C'è qualche JS che potrebbe intercettare e annullare l'invio del modulo? –
Ci sono alcune funzioni js dichiarate nella pagina, ma nulla che viene eseguito quando la pagina viene caricata - è quello che cercherò? – MGOwen
Ciò è probabilmente dovuto a qualche tipo di controllo Ajax sulla tua pagina che interferisce con il post. Iniziare a rimuovere i controlli finché non inizi ad eseguire eventi. –