我想我可能知道原因,但不知道如何在不进行大量代码重写的情况下修复它(这是我更喜欢避免的)。
我有过
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
....现在是奇怪的部分了。在查找作为TargetID的_EditControl的ID时,_CalendarExtender显示错误。这听起来像是命名容器的问题,所以我找了又找,但什么也找不到。然后我用调试器查看了一下。正如预期的那样,_EditControl和_ImageButton都将其命名容器设置为this,但是_CalendarExtender将其命名容器设置为null。
我很乐意自己尝试用_CalendarExtender.NamingContainer=this;来解决这个问题,但这是一个只读属性。
我认为这可能发生的唯一原因是因为_CalendarExtender继承自ExtenderControl->Control。面板继承自WebControl->Control的位置。
有没有人知道我可能遗漏了什么,或者这个问题的解决办法之类的?
发布于 2009-09-15 13:52:03
好吧,我将日历扩展器(稍后在代码中)添加到一个不同的面板,而不是包含编辑控件的面板,我想这就是我得到这样一个错误的原因。
https://stackoverflow.com/questions/1424563
复制相似问题