7

いくつかのサード パーティ製のコントロール、いくつかの ajaxy のもの、およびいくつかの通常の ASP.NET ボタン コントロールを含む ASP.NET (C#) ページがあります。

ボタン クリック イベントは、クリックされても発生しません。

VS 2008 のデザイン モードでボタンをダブルクリックすると分離コードに切り替わりますが、イベント ハンドラーは作成されません。

イベント ハンドラーを手動で作成しても役に立ちません。

ページ全体をここに含めるには大きすぎますが、これが一番上の部分です。

<%@ 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>

...そしてページ上の私のボタン宣言:

<asp:Button ID="LicenseCsvButton" runat="server" Text="Export to CSV" OnClick="LicenseCsvButton_Click" />

...そして分離コード:

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");
}

何か案は?それはajaxか何かでしょうか?たぶん、サードパーティの「obout」グリッドコントロールですか?

更新:
1、2 か月前にこれを修正したので、この質問に戻って後世のために答えましたが、どのように修正したかを正確に思い出せませんでした! (お年寄り、呪ってください!) ASP.NET AJAX コントロールの一部を jQuery UI コントロールに置き換えることである程度の成功を収めましたが、本当の解決策は、タグの 1 つのプロパティの 1 つがコントロールを指していたことだと思います。それはもはや存在しませんでした。

同じ状況にある場合は、試してみて、コメントで何がうまくいくか教えてください。正しい答えを投稿します.

4

9 に答える 9

15

デバッグ中に、ボタンの CausesValidation プロパティを確認します。何らかの理由で、私のページの 1 つに、デフォルトで「True」に設定されているボタンがありました。明示的に「False」に設定すると、すべてが機能しました。

于 2011-09-20T19:43:53.737 に答える
9

これは今までに解決する必要があることはわかっていますが、共有するために-同様の問題が発生しました. 私の場合、問題はRequiredFieldValidator、ポップアップの一部だったために表示されなかったページがあったことでした。そのバリデーターは、関連する「保存」ボタンをクリックしたときにのみ呼び出されるはずでしたが、何もValidationGroup設定していなかったため、クリックされたボタンに対してページが送信されなくなりました。ValidationGroup右のボタンにa を追加すると、問題が解決しました。

于 2012-07-25T00:12:23.370 に答える
3

I had this problem just now and it was caused by another control having an AutoPostBack="true" which would submit the form before the button had a chance to submit the form to trigger the click event.

于 2012-06-01T11:42:04.080 に答える
3

最近同じ問題が発生しました-原因は最終的に、送信前にjuavascriptメソッド(複数の送信を防ぐように設計されています)によってボタンが無効にされたことが原因であると判断されました。残念ながら、Webフォームは、コードビハインドイベントを許可する前にボタンの有効な状態をチェックしているようです。引き金。

于 2011-05-04T08:11:15.860 に答える
2

変化する

CodeFile="CompanyCompliance.aspx.cs" 

CodeBehind="CompanyCompliance.aspx.cs"

関連する質問: CodeFile と CodeBehind の比較

于 2009-09-16T01:17:32.127 に答える
1

ボタンのプロパティ「UseSubmitBehavior」= falseを変更したこの問題がありました。今、それは働いています。

于 2015-02-20T08:27:49.287 に答える