jQuery和UpdatePanel兼容的问题

  今天老大分配了一个任务,将一个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/

 

你可能感兴趣的:(jquery)