我有一个应用程序,我从服务器获取一些数据并将其保存在一个数组中。当我显示它时,我想显示它的分页,所以我决定每页有50个项目。
我想实现刷新功能,以便刷新当前查看的页面。例如,如果我已经加载了3个页面,这意味着我的数组中有150个项目,并且我刷新了第2页(这意味着我从服务器获取项目50-99)我想用新的替换当前项目项目
基本上我想要做的是删除当前数组中的项目50-99,并将“新”50项添加到从索引50开始的当前数组。
我试过这样做:
// remove the items
items.splice((this.currentPage*50 -50), 50)
// add the new freshly grabbed items instead
Array.prototype.splice.apply(
items,
[(this.currentPage*50 -1), data.data.length].concat(data.data));
但它看起来似乎有点儿马车。如果我只加载了1页,那么它按预期工作。它删除所有50个项目并用新项目替换它们。但是,如果我加载了2个页面,并且我尝试刷新第1页,我可以突然看到当前项目数组长度为99而不是100.我尝试使用它,但我无法让它工作:/
知道如何根据当前刷新的页面从我的数组中有效删除一组项目,并将删除的项目替换为包含新项目的新数组吗?
答案 0 :(得分:2)
我想,你不需要这个。
..... some steps.........
while (@iv<= @rcnt)
Begin
CREATE TABLE #MathLogicTable
(
IDNUM INTEGER IDENTITY(1,1),
ATTRIBUTENAME VARCHAR(256),
INPUTVALUES DECIMAL(15,3)
)
INSERT INTO #MathLogicTable
SELECT statements..................
if (not exists (select 1 from #MathLogicTable))
BEGIN
set @iv=@iv+1 (I need this step to go back to the start of the loop...if the condition satisfies)
END
------------------------------------------------------------
select............
update........
N Steps.........
-------------------------------------------------------------
End
否则你需要为这样的长度实现// remove the items
items.splice((this.currentPage*50 -50), 50)
:
0
最好的事情是,像这样一步完成:
// add the new freshly grabbed items instead
Array.prototype.splice.apply(
items,
[(this.currentPage - 1) * 50, 0].concat(data.data));
// ^
&#13;