我有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>
答案 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。将此事件用于需要加载页面上所有其他控件的任务。