在用asp.net的UpdatePannel执行分页的时候,发现当跳转到第二页以后的页面的时候,UdatePannel里面的某些js方法不能使用。原因是因为UdatePannel没有postback,所以需要重新加载才能使用这些你用到的js方法。
例子:
$(function(){ $("#list a").click(function(){ art.dialog.data('type', "add"); // 存储数据 art.dialog.open('/SystemPage/Subject/addSubject.aspx', {title: '添加'}); }); $(".edite").click(function(){ art.dialog.data('sid', $(this).attr("sid")); // 存储数据 art.dialog.data('type', "edite"); // 存储数据 art.dialog.data('sname',$(this).attr("sname")); // 存储数据 art.dialog.open('/SystemPage/Subject/addSubject.aspx', {title:'编辑'},false); }); }) function reload() { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); } function EndRequestHandler() { $(".edite").click(function(){ art.dialog.data('sid', $(this).attr("sid")); // 存储数据 art.dialog.data('type', "edite"); // 存储数据 art.dialog.data('sname',$(this).attr("sname")); // 存储数据 art.dialog.open('/SystemPage/Subject/addSubject.aspx', {title:'编辑'},false); }); }
在分页的后置页面方法里面还得重新加载这个方法reload()
/// <summary> /// 分页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void AspNetPager1_PageChanged(object sender, EventArgs e) { //重新注册js函数 ScriptManager.RegisterStartupScript(Page, typeof(string), "Sort", "reload();", true); int pageIndex=this.AspNetPager1.CurrentPageIndex; dataBind(10,pageIndex); }