0

我已經創建了一個服務器控件。
在CreateChildControls事件中,我有一個文本框。 我想這個文本框改爲使用阿賈克斯日曆擴展日曆選擇器,但我到目前爲止什麼是不工作...如何在服務器控件中實現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

感謝您的答覆,但沒有奏效。我收到一個黃色屏幕,顯示以下錯誤:''calExTxtStartDate'的TargetControlID無效。無法找到ID爲'ctl00_ctl00_bodyContentPlaceHolder_bodyContentPlaceHolder_txtStartDate'的控件.' – Craig 2014-10-03 13:35:42

0

我用Chrome瀏覽器檢查的JavaScript一切都是爲了和原來我是越來越JavaScript錯誤。

此網站還使用Telerik Rad控件,並使用RadScriptManager而不是其他RAD控件的AjaxScriptManager becsuae ...並且不幸的是,AJAX日曆擴展程序和RadScriptManager不兼容(不管我的版本是什麼)...所以我簡單地換到使用RadDatePicker,這似乎很好地工作......

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