SharePoint Web 部件自动刷新 javascript 事件?
SharePoint web part automatic refresh javascript event?
背景:我正在使用 JSLink 修改 SharePoint 列表 Web 部件。我还添加了 jQuery 和 jQuery-UI 以使列表项显示为 jQuery 手风琴。它运行良好,除了我还需要在 Web 部件上实现 ajax 自动刷新以每 60 秒刷新一次内容。
问题:当 Web 部件刷新时,jquery 代码还原 - 项目不再以手风琴模式显示。我可以打开浏览器控制台并手动输入 jquery 代码,例如 $(".selector").accordion();
,它工作正常。这让我觉得我需要找到一种方法在每个 Web 部件自动刷新完成后 调用 jquery 代码 。
问题:所以,是否有 javascript 事件或方法来查明何时在我的 Web 部件上触发自动刷新,以便我可以再次调用我的 jquery手风琴之后?还有什么我可能会遗漏的吗?
感谢您的宝贵时间!
我相信您可以通过覆盖 Sys.WebForms.PageRequestManager
对象当前实例的 _onFormSubmit
方法,将您自己的代码或函数调用插入到回调链中。
Sys.WebForms.PageRequestManager.getInstance()._onFormSubmit = function(i){
Sys.WebForms.PageRequestManager.prototype._onFormSubmit.call(this,i);
alert("Refreshing the data..."); // -- your code or function call here
};
当我在 F12 控制台中 运行 在具有 25 秒刷新的列表视图的页面上执行上述代码时,我开始每 25 秒看到 "Refreshing the data..." 弹出窗口,但我还没有测试过比这更复杂的东西。
答案是使用此代码:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyFunction);
function MyFunction() {
//do something here;
}
感谢@Thriggle
参考资料:
https://msdn.microsoft.com/en-us/library/bb311028.aspx
https://www.daniweb.com/programming/web-development/threads/247263/ajax-postback-after-endrequest
背景:我正在使用 JSLink 修改 SharePoint 列表 Web 部件。我还添加了 jQuery 和 jQuery-UI 以使列表项显示为 jQuery 手风琴。它运行良好,除了我还需要在 Web 部件上实现 ajax 自动刷新以每 60 秒刷新一次内容。
问题:当 Web 部件刷新时,jquery 代码还原 - 项目不再以手风琴模式显示。我可以打开浏览器控制台并手动输入 jquery 代码,例如 $(".selector").accordion();
,它工作正常。这让我觉得我需要找到一种方法在每个 Web 部件自动刷新完成后 调用 jquery 代码 。
问题:所以,是否有 javascript 事件或方法来查明何时在我的 Web 部件上触发自动刷新,以便我可以再次调用我的 jquery手风琴之后?还有什么我可能会遗漏的吗?
感谢您的宝贵时间!
我相信您可以通过覆盖 Sys.WebForms.PageRequestManager
对象当前实例的 _onFormSubmit
方法,将您自己的代码或函数调用插入到回调链中。
Sys.WebForms.PageRequestManager.getInstance()._onFormSubmit = function(i){
Sys.WebForms.PageRequestManager.prototype._onFormSubmit.call(this,i);
alert("Refreshing the data..."); // -- your code or function call here
};
当我在 F12 控制台中 运行 在具有 25 秒刷新的列表视图的页面上执行上述代码时,我开始每 25 秒看到 "Refreshing the data..." 弹出窗口,但我还没有测试过比这更复杂的东西。
答案是使用此代码:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(MyFunction);
function MyFunction() {
//do something here;
}
感谢@Thriggle
参考资料: https://msdn.microsoft.com/en-us/library/bb311028.aspx https://www.daniweb.com/programming/web-development/threads/247263/ajax-postback-after-endrequest