OK, więc staram się, aby moje niestandardowe stronicowanie działało na Telerik RadGrid (podobne do asp:Gridview
), ale wciąż uderzam w ścianę. (pierwsza część mojego pytania została udzielona here)GridView (RadGrid) i Custom Paging
Więc wdrożyłem tę sugestię. Używam następujących przechowywanych proc
ALTER PROCEDURE [dbo].[bt_HealthMonitor_GetAll]
(
@StartRowIndex int,
@MaximumRows int
)
AS
SET NOCOUNT ON
Select
RowNum,
[ID],
[errEx],
[errURL],
[errSource],
[errUser],
[errMessage],
[errIP],
[errBrowser],
[errOS],
[errStack],
[errDate],
[errNotes]
From
(
Select
[ID],
[errEx],
[errURL],
[errSource],
[errUser],
[errMessage],
[errIP],
[errBrowser],
[errOS],
[errStack],
[errDate],
[errNotes],
Row_Number() Over(Order By [ID]) As RowNum
From dbo.[bt_HealthMonitor] t
)
As DerivedTableName
Where RowNum Between @StartRowIndex And (@StartRowIndex + @MaximumRows)
Order By [ID] Desc
potem drugi procedurę przechowywaną, aby uzyskać zliczania rekord
ALTER PROCEDURE [dbo].[bt_HealthMonitor_GetRecordCount]
AS
SET NOCOUNT ON
return (Select Count(ID) As TotalRecords From bt_HealthMonitor)
i używam LINQ do SQL do wiązania się z moim RadGrid
Protected Sub RadGrid1_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs)
Dim startRowIndex As Integer = (RadGrid1.CurrentPageIndex * RadGrid1.PageSize)
Dim maximumRows As Integer = RadGrid1.PageSize
Dim HealthMonitorDC As New DAL.HealthMonitorDataContext
Dim r = HealthMonitorDC.bt_HealthMonitor_GetAll(startRowIndex, maximumRows)
RadGrid1.DataSource = r
End Sub
Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
Dim HealthMonitorDC As New DAL.HealthMonitorDataContext
Dim count = HealthMonitorDC.bt_HealthMonitor_GetRecordCount()
RadGrid1.MasterTableView.VirtualItemCount = count.ReturnValue
RadGrid1.VirtualItemCount = count.ReturnValue
End Sub
Ale problem, którego doświadczam cing jest to, że siatka chwyta tylko pierwsze 10 wierszy (zgodnie z oczekiwaniami), ale muszę ją pobrać, aby rozpoznać, że w tabeli znajduje się 200 wierszy, aby pojawiły się ikony stronicowania.
Jeśli używam dropdownlist, aby wyświetlić 50 rekordów, a następnie 50 pojawi się, ale nadal nie ma ikony przywoławcze, żeby mnie do następnego 50.
Co robię źle?
Dzięki ponownie za @Martin pomoc. Opublikowałem swoje wyniki na moim blogu dla innych osób, mam nadzieję, że znajdę i wykorzystam http://dotnetblogger.com/post/2010/03/07/RadGrid-with-Custom-Paging-Sorting-Filtering.aspx –