我有一个启用了EnableSortingAndPagingCallbacks的GridView。当用户点击更改页面时,会执行回调并更新GridView。我需要在发生这种情况后立即运行JavaScript函数,以便在新的数据页面上执行一些客户端操作。我怎样才能做到这一点?在GridView的分页回调后执行JavaScript
最接近我发现我的问题是这样的:How to have a javascript callback executed after an update panel postback?。但是,使用pageLoad()函数在此不起作用,因为在GridView回调之后,似乎没有触发pageLoad()。
我需要这个工作与IE7,否则我会使用DOMSubtreeModified事件侦听器。
示例代码,其中GridView1_PageIndexChanging和pageLoad不会触发。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test_script.aspx.cs" Inherits="test_script" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" />
<asp:GridView ID="GridView1" runat="server" AllowPaging="true"
EnableSortingAndPagingCallbacks="true" DataSourceID="SqlDataSource1"
OnPageIndexChanging="GridView1_PageIndexChanging" />
</form>
<script type="text/javascript">
function pageLoad(sender, args) {
alert('pageLoad');
}
</script>
后面的代码:
public partial class test_script : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
// This doesn't fire when EnableSortingAndPagingCallbacks is set to true
}
}
在上面的代码,当页面第一次加载页面加载()火灾,但在GridView是分页后不火。在后面的代码中,Page_Load在GridView被分页时触发,但GridView1_PageIndexChanging()不触发。
如果我将EnableSortingAndPagingCallbacks更改为false,则所有的函数都会像您期望的那样在每个GridView页面上发生更改。
这在正常的GridView控件回发工作正常,但我一直没能得到的RegisterClientScriptBlock使用EnableSortingAndPagingCallbacks工作时。此外,PageIndexChanging在分页回调期间甚至不会触发。 – user2250630 2013-04-05 23:53:23
然后我亲爱的朋友,你的代码中必须有一些非常错误的东西(可能是一些javascript错误),因为pageLoad和这个都适用于我。 – 2013-04-06 01:58:46
我添加了一些示例代码,显示无法触发PageIndexChanging或pageLoad的地方。你能看到我的代码与你的不同吗? – user2250630 2013-04-08 02:39:02