1

私は原因を知っているかもしれないと思いますが、多くのコードの書き直しなしでそれを修正する方法はわかりません(私は避けたいと思います)。

私は持っています

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

誰かが私が見逃している可能性のあるもの、またはこの問題の回避策などを知っていますか?

4

1 に答える 1

0

わかりました。編集コントロールを含むパネルとは別のパネルにカレンダーエクステンダー(後でコードで)を追加していました。これが、このようなエラーが発生した理由だと思います。

于 2009-09-15T13:52:02.633 に答える