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 在查找 _EditControl 的 ID 作为 TargetID 时会出错。这听起来像是一个命名容器的问题,所以我看了又看,找不到任何东西。然后我用调试器查看。_EditControl 和 _ImageButton 都将其命名容器设置this为预期,但 _CalendarExtender 将其命名容器设置为null.

我很想尝试自己解决这个问题,_CalendarExtender.NamingContainer=this;但这是一个只读属性。

我能弄清楚这可能发生的唯一原因是因为_CalendarExtender 继承自ExtenderControl->Control。Panel 继承自 WebControl->Control 的位置。

有谁知道我可能遗漏的东西或解决此问题的方法或其他东西?

4

1 回答 1

0

好的,我正在将日历扩展器(稍后在代码中)添加到与包含编辑控件的面板不同的面板中,我认为这就是我收到此类错误的原因..

于 2009-09-15T13:52:02.633 回答