如何从页面加载中触发按钮单击事件

时间:2013-02-28 15:46:41

标签: jquery asp.net jquery-ui

我有2个文本框控件,在页面加载时使用j-query预填充一些默认日期。因此,当页面加载时,我的GridView应该根据这两个文本框控件中的日期加载一些数据。但问题是GridView没有加载页面加载的任何数据,但是只有在我点击填充gridview的Generate Report按钮后才加载gridview。我试图调用从页面加载填充gridview的函数,但它没有帮助。所以我发现这个代码触发按钮点击事件,似乎它正在工作,但问题是它保持循环和循环...请帮助我对任何建议持开放态度。谢谢 这是触发btnClick事件的j查询,但它仍然是循环的。

<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>

3 个答案:

答案 0 :(得分:0)

您尝试触发的点击处理程序很可能也通过$(document).ready()附加。可能发生的是您在附加处理程序之前触发事件。解决方案是使用setTimeout: 请改用它。

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

答案 1 :(得分:0)

我认为你的按钮正在触发回发,这就是导致循环的原因。

要修复它,您可以将需要更新的控件放在ajax面板中

答案 2 :(得分:0)

利用加载过程提供的不同事件:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

例如,在事件处理阶段结束时使用Page - LoadComplete = Raised。将此事件用于需要加载页面上所有其他控件的任务。