0

をデータ ソースとして使用GridViewするWeb レポートを作成しています。この Web ページでは、ユーザーが日付範囲を入力し、[検索] ボタンをクリックすると、日付に基づいて SQL クエリを実行できます。クエリが機能し、日付が正しく取得されることはわかっていますが、クラッシュの原因は次のとおりです。SqlDataSourceGridView

  1. ユーザーが大きな日付範囲を入力し、[検索] ボタンをクリックした場合
  2. クエリが実行され、〜 4500 エントリが正しく返されます
  3. 次に、ユーザーは 1 日を入力して [検索] ボタンをクリックします。
  4. プログラムがクラッシュし、次のエラー メッセージが表示されます。

    説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。例外の詳細: System.InvalidOperationException: オブジェクトの現在の状態のため、操作は有効ではありません。

スタック トレースを見て、あちこちにいくつかのブレークポイントがあることから、ボタンの OnClick メソッドが呼び出される前に、これが発生していることは確かです。これは、1 か月前に作成した同様のレポート ページで発生したことがありますが、その理由を知りたいです。

ここで何が起きてるの?

私はこれを VS 2008 のデバッグ モードで実行しており、C# ASP.NET でコーディングしています。また、どのコードが役立つかわかりません。編集して投稿する必要がある場合はお知らせください。

編集スタックトレースは次のとおりです。

[InvalidOperationException: オブジェクトの現在の状態のため、操作は有効ではありません。 HttpRequest.FillInFormCollection() +148

[HttpException (0x80004005): URL エンコードされたフォーム データが無効です。] System.Web.HttpRequest.FillInFormCollection() +206 System.Web.HttpRequest.get_Form() +68 System.Web.HttpRequest.get_HasForm() +8743895 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97 System.Web.UI.Page.DeterminePostBackMode() +63 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +133

4

1 に答える 1

0

postdata limit を超えました。グリッド全体をサーバーにポストバックしていると思います。

于 2013-06-21T15:33:29.187 に答える