Думаю, я мог бы знать причину, но не то, как ее исправить, не много переписывая код (чего я предпочитаю избегать).
У меня есть
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 в качестве TargetID. Это звучало как проблема с контейнером именования, поэтому я посмотрел и посмотрел, и ничего не смог найти. Затем я посмотрел с отладчиком. Для обоих контейнеров имен _EditControl и _ImageButton установлено значение this
, как и ожидалось, а для контейнера _CalendarExtender установлено значение null
.
Я бы хотел попытаться решить эту проблему самостоятельно с помощью _CalendarExtender.NamingContainer=this;
, но это свойство только для чтения.
Единственная причина, по которой я могу понять, что это могло произойти, это то, что _CalendarExtender наследуется от ExtenderControl-> Control. Где Panel наследуется от WebControl-> Control.
Кто-нибудь знает что-то, чего я мог не заметить, или решение этой проблемы или что-то в этом роде?