質問

膨大な量の動的コントロールを作成していますが、IDを割り当てる必要があるすべての場合、保証された一意の変数を使用して割り当てます(コントロールだけで64ビットがオーバーフローしない限り)。

今、私には問題があります。私は重複したコントロールをどこかに持っていて、Page_Loadの後まで発生しないため、どこに追加されたかなどを見つけることができません。つまり、例外がスローされたときに自分のコードから外れます(私はRenderまたは他の内部機能のように思います)。

コントロール名は" ctlXXX"です。 XXXは数字です(現在、常に244)。このコントロールIDは私が作成したものではありません 。 ASP.Netによって自動的に作成されています(IDの前にctlが付いていないため)。それでは、表示できないこのエラーを修正するにはどうすればよいですか?誰でも私のエラーを見つける方法を提案できますか(これがASP.Netのバグではないことを本当に願っています)?

また、カスタムコントロールでMemberwiseコピーを実行するコピー機能を使用することでエラーが発生しました。その後、コントロールがリセットされると、コントロールの前にこの部分が発生するため、一意のIDを持つかnullになりますPanelの子孫であるカスタムコントロールに読み込まれます)

このバグを見つける方法について誰かにアドバイスをいただけますか?

役に立ちましたか?

解決

INamingContainerをご覧くださいインターフェース。これで問題は解決すると思いますが、それを行うには新しいコントロールクラスを派生させる必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top