sp; Dim i As Integer DT = AppCache("Index") GetPage = Convert.ToInt32(HttpContext.Current.Request.QueryString("Page")) ListCount = RecordsCount() PageCount = CInt(Fix(ListCount / PageSizeNum) + 1) If ListCount Mod PageSizeNum = 0 Then PageCount = PageCount - 1 End If If GetPage = 0 Or PageCount < GetPage Then GetPage = 1 End If GetPage = GetPage - 1 If ListCount < PageSizeNum Or GetPage = PageCount Then EPage = ListCount - 1 Else EPage = (GetPage * PageSizeNum + PageSizeNum) - 1 End If For i = (GetPage * PageSizeNum) To EPage PageIndex += DT.Rows(i)(0) & "," If i = ListCount - 1 Then Exit For Next PageIndex = Left(PageIndex, Len(PageIndex) - 1) Return " Where " & IndexStr & " In(" & PageIndex & ")" Catch ex As Exception Echo(".PageWhere " & ex.Message.ToString) End Try End Function Private Sub WriteIndex() Try If (AppCache("Index") Is Nothing) Then Dim Adapt As OleDbDataAdapter Adapt = New OleDbDataAdapter("Select " & IndexStr & " From " & TableStr & OrderStr, Conn) DS = New DataSet DS.Clear() Adapt.Fill(DS) AppCache("Index") = DS.Tables(0) End If Catch ex As Exception Echo(".WriteIndex " & ex.Message.ToString) End Try End Sub Private Property AppCache(ByVal SetName As String) Get Return HttpContext.Current.Application.Get(ScriptName & "_" & TableStr & "_" & SetName) End Get Set(ByVal Value) HttpContext.Current.Application.Lock() HttpContext.Current.Application.Set(ScriptName & "_" & TableStr & "_" & SetName, Value) HttpContext.Current.Application.UnLock() End Set End Property Private Sub Echo(ByVal Value As String) Dispose() HttpContext.Current.Response.Write(Value) HttpContext.Current.Response.End() End Sub Protected Overrides Sub Finalize() MyBase.Finalize() Dispose() End Sub Public Overrides Sub Dispose() If Not (Conn Is Nothing) Then Conn.Dispose() End If End Sub End Class End Namespace