私は原因を知っているかもしれないと思いますが、多くのコードの書き直しなしでそれを修正する方法はわかりません(私は避けたいと思います)。
私は持っています
public class datecontrol : basecontrol
{
private ImageButton _ImageButton;
private TextBox _EditControl;
private CalendarExtender _CalendarExtender;
....
public datecontrol{
_ImageButton=new ImageButton();
_EditControl=new TextBox();
_CalendarExtender=new CalendarExtender();
.....
_CalendarExtender.TargetControlID=_EditControl.ID;
}
}
と
public class basecontrol : Panel,INamingContainer
....
今ここに奇妙な部分があります。_CalendarExtenderは、TargetIDとして_EditControlのIDを見つける際にエラーを出します。ネーミングコンテナの問題のように聞こえたので、調べてみましたが何も見つかりませんでした。それから私はデバッガーで調べました。_EditControlと_ImageButtonはどちらも、this
期待どおりに名前付けコンテナーが設定されていますが、_CalendarExtenderでは名前付けコンテナーがに設定されていnull
ます。
この問題を自分で修正したいのです_CalendarExtender.NamingContainer=this;
が、これは読み取り専用のプロパティです。
これが発生している可能性があることを私が理解できる唯一の理由は、_CalendarExtenderがExtenderControl->Controlから継承しているためです。PanelがWebControl->Controlから継承する場所。
誰かが私が見逃している可能性のあるもの、またはこの問題の回避策などを知っていますか?