服務端的分頁就一個SQL語句就可以搞定,貼出代碼後自己慢慢欣賞:
CREATE Procedure AppGetEmpList @EID int, @LGID int, @pagesize int, @pageindex int As Begin select count(*) count from appemployee
Select a.ID,a.EID,Case When @LGID=2052 Then Name Else eName End Name,DepTitle,JobTitle ,Case When b.xEID is null Then 0 Else 1 End Fav ,Case When Isnull(a.Reportto,0)=@EID Then 1 Else 0 End IsSub From (select row_number() over(order by left(a.ename,1)) ID ,a.* From appemployee a Where a.LGID=@LGID and Isnull(a.Status,0)<>4) a Left Join AppEmpFavorites b on a.EID=b.EID and b.xEID=@EID where a.ID between (@pageindex-1)*@pagesize+1 and @pageindex*@pagesize End |
分析1:
select row_number() over(order by left(a.ename,1)) ID ,a.* From appemployee a Where a.LGID=@LGID and Isnull(a.Status,0)<>4) |
分析2:
Select a.ID,a.EID,Case When @LGID=2052 Then Name Else eName End Name,DepTitle,JobTitle ,Case When b.xEID is null Then 0 Else 1 End Fav ,Case When Isnull(a.Reportto,0)=@EID Then 1 Else 0 End IsSub From (select row_number() over(order by left(a.ename,1)) ID ,a.* From appemployee a Where a.LGID=@LGID and Isnull(a.Status,0)<>4) a Left Join AppEmpFavorites b on a.EID=b.EID and b.xEID=@EID |
該段語句是在語句1的基礎上通過EID進行過濾掉我們不需要的值
分析3:
where a.ID between (@pageindex-1)*@pagesize+1 and @pageindex*@pagesize |
該語句是通過傳遞的參數進行計算並取出指定的值返回給客戶端。
綜上,服務端只需要利用這個思路即可實現了分頁的查詢功能,然而android客戶端在ListVIew中利用分頁的請求方式(客戶端分頁後續討論),即可對接到服務端。