Dependendo da versão do AjaxControlToolkit utilizada, é preciso atentar a alguns bugs que ocorrem em alguns dos controles que o pacote disponibiliza.
Neste caso, o erro com que me deparei foi o seguinte, assumindo que o Depurador de Javascript do Internet Explorer esteja ativado:
Erro em tempo de execução do Microsoft JScript: ‘null’ é nulo ou não é um objeto
Ao enviar a execução para o Visual Studio, o erro acontece na seguinte execução:
O erro ocorre numa combinação do uso dos controles CalendarExtender e MaskedEditExtender. O erro ocorre especificamente na função _switchMonth. Aparentemente, algumas data informadas no controle com MaskedEditExtender sem que o controle CalendarExtender tenha sido alguma vez chamado, e consequentemente criado, o bug é gerado. Um exemplo de data que gera o bug é 01/01/0002, dentre outras possíveis.
O erro ocorre por conta do seguinte código.
var oldElement = newElement.cloneNode(true); // CRASH BOOM BANG.
A partir do Release 10920 do AjaxControlToolkit, o problema é resolvido. Porém, caso tenha alguma dificuldade com atualização de componentes ou se precisou promover alterações no toolkit que resultou em algo personalizado, o código que corrige o erro é:
// Added by Deepak Chawla 23 July 2007 BUG: When the mask edit auto complete calls the calendars delegate body might not have been built
if (this._modes[this._mode] == null) // NEW CODE
this._buildBody(); // NEW CODE
var newElement = this._modes[this._mode];
var oldElement = newElement.cloneNode(true);
Referências:
http://www.codeplex.com/AjaxControlToolkit/WorkItem/View.aspx?WorkItemId=11121
http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx?ReleaseId=4941
Tomás