如何在服务器控件中实现Ajax Calendar Extender?

时间:2014-10-03 11:35:19

标签: c# asp.net calendar ajaxcontroltoolkit custom-server-controls

我创建了一个服务器控件 在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,所以没有添加另一个(当我这样做时出现'重复脚本管理器'错误)。

当使用设计器在页面上添加日历时,我能够正常工作,但不能在服务器控件中添加...我错过了什么吗?

2 个答案:

答案 0 :(得分: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

}

答案 1 :(得分:0)

我使用Chrome来检查javascript是否整齐,但事实证明我收到了javascript错误。

这个网站也使用Telerik Rad控件并使用RadScriptManager而不是其他RAD控件的AjaxScriptManager ......不幸的是AJAX日历扩展器和RadScriptManager不兼容(不管我的版本是不是)...所以我只是交换使用RadDatePicker,这似乎工作得很好......

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