ASP.NET の「コントロール コレクションを変更できません」エラーのトラブルシューティング
AjaxToolkit SliderExtender をユーザー コントロールに追加すると、「コントロールにコード ブロックが含まれているため、コントロール コレクションを変更できません」というイライラするエラーが発生することがあります。これは、コントロール内のコード ブロックが Controls コレクションへの変更を妨げるために発生します。
この解決策には、<%# ... %>
構文を使用して、ユーザー コントロールのマークアップ内のコード ブロックをデータ バインディング式に変換することが含まれます。 データ バインディング式は、共通言語ランタイム (CLR) によってコード ブロックとして扱われないため、競合は解決されます。
たとえば、ユーザー コントロール内に <...>
のようなコード ブロックがある場合は、それらを同等のデータ バインディング式に置き換えます。
マスター ページの分離コード内:
<code class="language-csharp">protected void Page_Load(object sender, EventArgs e) { Page.Header.DataBind(); }</code>
これにより、データ バインディングが確実に行われ、SliderExtender をエラーなく追加できるようになります。 ユーザー コントロール自体内のデータ バインディングを適切に処理することを忘れないでください。
以上がAjaxToolkit SliderExtender 使用時の「コントロール コレクションを変更できません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。