我在覆盖网格给出的分页代码时遇到问题。我需要做的就是破解我的网格给出的分页。
我们有很多记录。所以,我们正在做的是将记录加载到阈值限制。
因此,我们假设阈值限制为50,页面大小为10,因此将有5页。因此,当用户进入第5页时,网格提供的下一个按钮将被禁用。 所以,我们需要做什么,我们需要启用它,如果用户点击它,我需要进行ajax调用并在网格中加载另外50条记录(阈值限制)。 之后我需要禁用此事件,以便下次用户点击它时不应该执行make ajax调用,它应该像以前一样工作(从第1页到第2页等等)
我能提到的所有上述事情。但是这里出现了问题,当用户进入第5页并返回到其他页面时,请说3而不点击下一步按钮。现在,转到第3页 当用户点击下一页按钮时,它正在进行ajax调用,因为当用户进入第5页并向其提供点击事件时,我启用了按钮。 所以,即使我提供的条件只在网格当前页面为5时运行,那么它也在运行,因为在转到第5页后,我将使按钮启用,绑定和事件。因此,当我提供事件时,它将在没有指定条件的情况下运行。 如何使click事件作为默认值工作,并且仅当用户为5时才会进行ajax调用。
这是我的代码 -
///grid Current page will tell us which page we are in the grid.
if(gridCurrentPage==5){
query(".dojoxGridWardButton").forEach(function(element) {
query(".dojoxGridnextPageBtnDisable").replaceClass("dojoxGridnextPageBtn", "dojoxGridnextPageBtnDisable");
query(".dojoxGridlastPageBtnDisable").replaceClass("dojoxGridlastPageBtn", "dojoxGridlastPageBtnDisable");
});
callNextButton(gridCurrentPage)
}
这就是功能。
function callNextButton(gridCurrentPage) {
var target = dojo.query(".dojoxGridnextPageBtn");
var signal = on(target, "click", function(event){ ///Adding click event
if (gridCurrentPage ==5 ) {
var deferred = new dojo.Deferred();
setTimeout(function() {
deferred.callback({
called: true
})
}, 2000);
if (checking some conditions) {
////////doing Ajax call
deferred.then(function() {
//calling a callback
})
},
error: function(e) {}
};
})
signal.remove(); //Removing click event
}
注意:我的网格是增强网格,是dojo工具包的一部分。但可能是一个设计问题,欢迎任何意见/建议。
我真的需要一个建议。请任何人都可以找到问题所在的地方,这将是有用的。