IsPostBack が true の場合、画面のサイズを取得する JavaScript 関数を呼び出し、幅と高さを隠しフィールドに渡し、ボタンをクリックして PostBack を発生させるページがあります。したがって、ユーザーの画面のサイズを取得し、適切なサイズのテーブルなどを含むデフォルト データを含むページをロードできます。
必ず、(一度ポストバックされた) ページにデータが表示されると、グリッドビューにデータが取り込まれます。各行には「削除」リンク ボタンがあります。各リンク ボタンは OnClientClick に設定され、javascript 関数を呼び出して削除することを確認します。
グリッドの上には、表示されるデータを検索またはフィルタリングできるテキスト ボックス/ボタン/ドロップダウン リストの行があります。Gridview は更新パネルにあります。ページが最初にデータをロードし、プロジェクトのリストを表示すると、削除リンク ボタンはすべて正常に機能します。すべての行で問題ありません。[確認] ボックスが表示され、[OK] を選択すると、非同期ポストバックが発生します。
最初のデータが表示された後 (1 回のポストバック後)、検索ボックスとボタンを使用するか、ドロップダウンリストを使用してデータをフィルタリングすると (検索ボタンとフィルター DropDownList は UpdatePanel の非同期トリガーです)、データが更新されます。 (常に) 大丈夫ですが、場合によっては、GridView の各行の「削除」LinkButton が何もしないことがあります。ClientSide 関数も起動しません。まるで死んでいるかのようです。
私はしばらく前に ImageButtons で同様の問題を抱えていましたが、受け取った知恵は「それらを LinkButtons に変更する」ようです。しかし、問題なく機能する「削除」LinkButtons を備えた多数のグリッドがありますが、これは機能しなくなることがあります。
Framework 4.0 に移行して以来、UpdatePanels をあきらめることを考えています。Framework 2.0 で何年も確実に機能していたサイトに問題があるようです
アイデアはありますか?これは、2 番目のポストバックでコントロールが読み込まれる順序と関係がありますか?
編集:これにはひねりがあります。このような状況が発生した場合、つまり、[削除] リンクをクリックしてもクライアント側イベントがトリガーされません。Gridview の外側 (つまり、UpdatePanel の外側) のページの領域をクリックしてから、[削除] リンクをクリックして戻すと、機能します。 !