0

Я создал серверный элемент управления.
В событии CreateChildControls у меня есть текстовое поле. Я хотел бы изменить это текстовое поле календаря подборщика с помощью календаря расширителя Ajax, но то, что я до сих пор не работает ...Как реализовать Ajax Calendar Extender в управлении сервером?

private TextBox _txtStartDate; 
private CalendarExtender _calExTxtStartDate; 

protected override void CreateChildControls() { 
... etc 
_txtStartDate = new TextBox(); 
_txtStartDate.ID = "txtStartDate"; 

_calExTxtStartDate = new CalendarExtender(); 
_calExTxtStartDate.ID = "calExTxtStartDate"; 
_calExTxtStartDate.TargetControlID = "txtStartDate"; 
... etc 
Controls.Add(_txtStartDate); 
Controls.Add(_calExTxtStartDate); // Calendar Extender 
... etc 
} 

У меня уже есть AjaxScriptManager на странице, что контроль потребляется , поэтому не добавили другие (и ошибки с ошибкой «дубликат сценария», когда я это делаю).

Я могу заставить это работать при использовании дизайнера для добавления календаря на страницу, но не в серверном элементе управления ... Я что-то упустил?

ответ

0

Я думаю, что вы должны сделать это как:

private TextBox _txtStartDate; 
private CalendarExtender _calExTxtStartDate; 

protected override void CreateChildControls() { 
... etc 
_txtStartDate = new TextBox(); 
Controls.Add(_txtStartDate); 
_txtStartDate.ID = "txtStartDate"; 

_calExTxtStartDate = new CalendarExtender(); 
Controls.Add(_calExTxtStartDate); // Calendar Extender 
_calExTxtStartDate.ID = "calExTxtStartDate"; 
_calExTxtStartDate.TargetControlID = _txtStartDate.ClientID; 
... etc 

} 
+0

Спасибо за ответ, но это не сработало. Я получаю желтый экран со следующей ошибкой: 'TargetControlID 'calExTxtStartDate недействителен. Не удалось найти элемент управления с идентификатором 'ctl00_ctl00_bodyContentPlaceHolder_bodyContentPlaceHolder_txtStartDate'. ' – Craig

0

Я использовал Chrome, чтобы проверить, что Javascript было все в порядке, и получается, что я получаю JavaScript ошибки.

Этот веб-сайт также использует элементы управления Telerik Rad и использует RadScriptManager вместо AjaxScriptManager becsuae других элементов управления RAD ... и, к сожалению, расширитель календаря AJAX и RadScriptManager несовместимы (в любом случае, не в моих версиях) ... Итак, я просто перепутаны использовать RadDatePicker, который, кажется, работает хорошо ...

http://demos.telerik.com/aspnet-ajax/calendar/examples/datepicker/custompopup/defaultcs.aspx

Смежные вопросы