【问题标题】:A timepicker javascript stops working when the page does postback ASP.NET当页面回发 ASP.NET 时,时间选择器 javascript 停止工作
【发布时间】:2016-04-18 10:36:52
【问题描述】:

我的 page.aspx 中有一个更新面板,在更新面板中我有一个带有引导时间选择器的文本框,我展示了一个示例:

      <asp:UpdatePanel runat="server" id="upd1">
                <ContentTemplate>
 <div class="form-group">
                    <div class="row col-md-12 col-md-offset-0">
                        <label class="control-label">Monday</label>                            
                    </div>
                </div>

                <div class="form-group col-md-3">
                    <div class="input-group bootstrap-timepicker timepicker input-sm">
                        <asp:TextBox runat="server" ID="txtFecIni_1" class="form-control input-small "></asp:TextBox>
                        <span class="input-group-addon "><i class="fa fa-clock-o"></i></span>
                    </div>
                </div>

                <div class="form-group col-md-3">
                    <div class="input-group bootstrap-timepicker timepicker input-sm">
                        <asp:TextBox runat="server" ID="txtFecFin_1" class="form-control input-small "></asp:TextBox>
                        <span class="input-group-addon "><i class="fa fa-clock-o"></i></span>
                    </div>
                </div>

              </ContentTemplate>
                </asp:UpdatePanel>

在我页面的 &lt;/ form&gt; 下,我添加了这个 javascript 代码:

       <script type="text/javascript">
        window.onload = function () {
  $('#txtFecIni_1').timepicker({
                minuteStep: 30,
                defaultTime: false,
                showMeridian: false
            });

            $('#txtFecFin_1').timepicker({
                minuteStep: 30,
                defaultTime: false,
                showMeridian: false
            });
}

    </script>

    <script src="js/jquery-2.2.2.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/bootstrap-timepicker.js"></script>

时间选择器正常工作,直到一个对象被抛出自动回发。我该如何解决这个问题? 谢谢。

【问题讨论】:

    标签: javascript jquery asp.net timepicker autopostback


    【解决方案1】:

    我是这样解决我的问题的:

    我将window.onload = function () 更改为function pageLoad() 像这样:

    之前:

         <script type="text/javascript">
            window.onload = function () {
      $('#txtFecIni_1').timepicker({
                    minuteStep: 30,
                    defaultTime: false,
                    showMeridian: false
                });
    
                $('#txtFecFin_1').timepicker({
                    minuteStep: 30,
                    defaultTime: false,
                    showMeridian: false
                });
    }
    
        </script>
    

    之后:

     <script type="text/javascript">
              function pageLoad() {
      $('#txtFecIni_1').timepicker({
                    minuteStep: 30,
                    defaultTime: false,
                    showMeridian: false
                });
    
                $('#txtFecFin_1').timepicker({
                    minuteStep: 30,
                    defaultTime: false,
                    showMeridian: false
                });
    }
    
        </script>
    

    我读到每次回发都会调用 Pageload。 希望这会对某人有所帮助

    【讨论】:

      【解决方案2】:

      这是由于asp.net控制here is explaination的回发

      使用Sys.WebForms.PageRequestManage

      你的代码会是这样的..

      <script>
                      jQuery(document).ready(function () {
      
                             $('#txtFecIni_1').timepicker({
                          minuteStep: 30,
                          defaultTime: false,
                          showMeridian: false
                      });
      
                      $('#txtFecFin_1').timepicker({
                          minuteStep: 30,
                          defaultTime: false,
                          showMeridian: false
                          });
                    });
                      var prm = Sys.WebForms.PageRequestManager.getInstance();
      
                      prm.add_endRequest(function () {
      
      
                             $('#txtFecIni_1').timepicker({
                          minuteStep: 30,
                          defaultTime: false,
                          showMeridian: false
                      });
      
                      $('#txtFecFin_1').timepicker({
                          minuteStep: 30,
                          defaultTime: false,
                          showMeridian: false
                          });
                      });
                  </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-06
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        相关资源
        最近更新 更多