この質問が何度も出てきたことは理解していますが、私が見つけた投稿のどれもこの問題を解決するのに役立ちませんでした.
時々、タイトルにエラーが表示されます。Multiple controls with the same ID 'ctl35' were found. FindControl requires that controls have unique IDs.
これは常に発生するわけではなく、数回更新するだけでエラーが解消されるようです。
私のページには基本的にUpdatePanel
and があり、ユーザーは注文の一部に対応するデータを入力することを意図しています。複数のパーツが存在する可能性があるため、新しいPanel
を作成し、入力フィールドを作成して にPanel
追加し、次に に追加するボタンがありますUpdatePanel
。ユーザーはこのボタンを複数回クリックして、複数のエントリを追加できますPanel
。これを達成するために、ユーザーが新しい入力フィールドを必要とするたびList<Panel>
に新しいものを追加するを維持します。ページが (追加ボタンから) ポストバックを受け取ると、List を繰り返し処理し、それぞれを にPanel
再追加します。これにより、既存のエントリ パネルが保持されます。Panel
UpdatePanel
これらのフィールドは動的に更新されるため、データを取得するフィールドの ID を一意で互いに区別できるものに設定するようにしました。ただし、前述のように、ASP.NET で自動生成された ID (ctl35
この場合) を使用して複数のコントロールを見つけるという問題に遭遇することがあります。ctl35
このエラーを受け取った後、Chrome でレンダリングされた HTML を見ると、IDを持つコントロールがまったくありません。さらに、レンダリングされた HTML には、ID が自動生成された「ctlXX」で終わる要素さえ含まれていません。このため、名前の競合の問題が発生する可能性がある場所を理解できません。ほとんどの場合、このエラーが発生しないという事実も、ここでの混乱の主な原因です。
この問題が何であるか、またはこれをトラブルシューティングするために何をする必要があるかについてのアイデアはありますか?