コンテナの名前がエクステンダーで「設定」されていない
-
07-07-2019 - |
質問
原因はわかっているかもしれませんが、多くのコードを書き直さずにそれを修正する方法はわかりません(回避したい)。
持っています
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;
}
}
and
public class basecontrol : Panel,INamingContainer
....
ここが奇妙な部分です。 _CalendarExtenderは、_EditControlのIDをTargetIDとして見つける際にエラーを返します。ネーミングコンテナの問題のように聞こえたので、見た目も見たものも何も見つかりませんでした。次に、デバッガを調べました。 _EditControlと_ImageButtonの両方のネーミングコンテナは予想どおり this
に設定されていますが、_CalendarExtenderのネーミングコンテナは null
に設定されています。
_CalendarExtender.NamingContainer = this;
を使用してこの問題を自分で解決したいと思いますが、これは読み取り専用プロパティです。
これが発生する可能性があることを理解できる唯一の理由は、_CalendarExtenderがExtenderControl-> Controlを継承しているためです。パネルがWebControl-> Controlを継承する場所。
私が行方不明になっている可能性のあるもの、またはこの問題の回避策などを知っている人はいますか?
解決
さて、エディットコントロールを含むパネルとは別のパネルにカレンダーエクステンダー(コードの後半)を追加していました。そのため、このようなエラーが発生しました。
所属していません StackOverflow