質問

原因はわかっているかもしれませんが、多くのコードを書き直さずにそれを修正する方法はわかりません(回避したい)。

持っています

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を継承する場所。

私が行方不明になっている可能性のあるもの、またはこの問題の回避策などを知っている人はいますか?

役に立ちましたか?

解決

さて、エディットコントロールを含むパネルとは別のパネルにカレンダーエクステンダー(コードの後半)を追加していました。そのため、このようなエラーが発生しました。

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