TextBox控件会被Render成 html 中的 inpu type="text" 控件, 其 AutoPostBack 是通过 input 的DOM事件 onchange 来实现的。以下是 .net 3.5 中 TextBox 生成的 html: <input name="TextBox1" type="text" onchange="javascript:setTimeout('__doPostBack(\'TextBox1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="TextBox1" />而客户端事件 onchange 只在手动修改文本框的值后才会触发,用脚本修改值并不触发该事件。而你用的日历控件恰恰是通过 javascript 脚本来给文件框设置值的,所以不会有 onchange 事件触发,也就不会回发页面。 变通的实现方法是在日历控件的脚本中设置完文本框的值后调用下文本框的onchange,简单的可以通过 document.getElementById(textbox_id).onchange(); 实现, textbox_id即你传给 new CbsCalendar() 的参数也就是文本框的客户端id。
温馨提示:内容为网友见解,仅供参考