我想我可能知道原因,但不知道如何在没有大量代码重写的情况下修复它(我更愿意避免)。

我有

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。

有没有人知道我可能会遗漏的东西或解决此问题的方法?

有帮助吗?

解决方案

好的,我正在将日历扩展程序(稍后在代码中)添加到与包含编辑控件的面板不同的面板中,我假设这是我出错的原因..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top