我想我可能知道原因,但不知道如何在没有大量代码重写的情况下修复它(我更愿意避免)。
我有
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。
有没有人知道我可能会遗漏的东西或解决此问题的方法?
答案 0 :(得分:0)
好的,我正在将日历扩展程序(稍后在代码中)添加到与包含编辑控件的面板不同的面板中,我假设这是我出错的原因..