今天老大分配了一个任务,将一个ascx页面中的dateCalendar换成jQuery中datePicker,我在添加了ID为dateCalendar文本框后,添加了如下的jQuery。
<script language="javascript"> $(document).ready(function(){ $("#<%=dateCalendar.ClientID %>").datepicker(); }); </script>
我在运行代码的时候,开始点击文本框,会弹出日历控件,但是,在操作了与Ajax相关的控件后(部分回发页面获取该网页的数据),UpdatePanel使页面部分更新后,点击日历文本框,日历控件就不会弹出来了。
对于这个问题,我在网上找到了解决方法。
方法一:
<scriptlanguage="javascript"> $(document).ready(function() { $("#<%=dateCalendar.ClientID %>").datepicker(); }); function pageLoad(sender, args) { if(args.get_isPartialLoad()) { $("#<%=dateCalendar.ClientID %>").datepicker(); } } </script>
原理:上面的代码片断中添加了一个函数调用pageLoad的,在每次页面加载时、页面的部分或全部回传时激发。那么与Ajax相关的控件被点击时,pageLoad就会被激发。
方法二:
<scriptlanguage="javascript"> function pageLoad(sender, args) { $("#<%=dateCalendar.ClientID %>").datepicker(); } </script>
或:
<scriptlanguage="javascript"> Sys.Application.add_load(FirejQuery); function FirejQuery() { $("#<%=dateCalendar.ClientID %>").datepicker(); } </script>
参考博文:
http://blog.163.com/renlee_1007/blog/static/225358620116203403011/