2013-02-28 74 views
0

我有2個文本框控件,在頁面加載時使用j-query預填充一些默認日期。所以當頁面加載時,我的GridView應該根據這兩個文本框控件中的日期加載一些數據。但問題是GridView沒有加載頁面加載的任何數據,但GridView只在單擊填充gridview的Generate Report按鈕後才加載。我試圖調用從頁面加載填充gridview的函數,但它沒有幫助。所以我發現這個代碼觸發按鈕單擊事件,它似乎工作,但問題是,它保持循環和循環...請幫助我打開任何建議。由於 這裏是J-查詢觸發該事件btnClick卻是不斷循環..如何從頁面加載啓動按鈕單擊事件

<script type="text/javascript"> 
$(document).ready(function(){ 
    //this calls the btnClick event but it is looping.. 
    $("[id*='btnClick']").click(); 
}); 
</script> 

,這裏是我的頁面

<%@ Page Title="My Metrics" ClientIDMode="Static" Language="C#" MasterPageFile="~/Site.master" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" 
    CodeFile="Summary.aspx.cs" Inherits="About" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    <link href="Styles/ui-lightness/jquery-ui-1.8.23.custom.css" rel="stylesheet" type="text/css" /> 
    <script src="Scripts/jquery-ui-1.9.2.custom.min.js" type="text/javascript"></script> 
    <script src="Scripts/jquery.ui.datepicker.js" type="text/javascript"></script> 

//here is the jquery that populates my textbox controls 

     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#txtStartClosingDate").datepicker(); 
       $("#txtEndClosingDate").datepicker(); 
       var startdate = new Date(); 
       startdate.setMonth(startdate.getMonth() - 1, 1); 
       $("#txtStartClosingDate").datepicker("setDate", startdate); 
       var endDate = new Date(); // current date 
       endDate.setDate(1); // going to 1st of the month 
       endDate.setHours(-1); 
       $("#txtEndClosingDate").datepicker("setDate", endDate); 
      }); 
    </script> 
+0

您的按鈕是否觸發回傳?如果是這樣,你的代碼將無休止地執行:調用點擊,回發,加載頁面,調用點擊,回發,加載頁面等... – mattytommo 2013-02-28 15:51:16

+0

爲什麼不把你的按鈕的邏輯移動到頁面加載或在頁面加載時調用它以及按鈕點擊,這樣你就不必第一次物理地點擊按鈕 – Pete 2013-02-28 16:03:07

+0

我將按鈕點擊邏輯移動到我的頁面加載中,但仍然沒有幫助。我認爲我的頁面在加載2個文本框控件之前加載得更快。 – moe 2013-02-28 16:06:35

回答

0

單擊處理您正嘗試對其他碼觸發最有可能通過$(document).ready()附加。可能發生的事情是,您在處理程序連接之前觸發事件。解決方法是使用setTimeout: 改爲使用它。

$("document").ready(function() { 
    setTimeout(function() { 
     $("[id*='btnClick']").trigger('click'); 
    },10); 
}); 
+0

我做到了這一點,但仍然是循環。我懷疑頁面加載甚至比2個文本框控件被填充之前更快地發射。 GridView會根據這些控件中指定的日期範圍進行填充。 – moe 2013-02-28 16:08:48

0

我認爲你的按鈕發射回發,這是什麼導致循環。

爲了解決這個問題,你可以把需要更新的一個Ajax面板內