【发布时间】:2011-01-24 18:25:04
【问题描述】:
好的,所以我正在尝试在 Telerik RadGrid 上进行自定义分页(类似于asp:Gridview),但我仍然碰壁。 (我的问题的第一部分已回答here)
所以我已经实施了这个建议。我使用以下存储过程
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
然后另一个存储过程来获取记录数
ALTER PROCEDURE [dbo].[bt_HealthMonitor_GetRecordCount]
AS
SET NOCOUNT ON
return (Select Count(ID) As TotalRecords From bt_HealthMonitor)
我正在使用 LINQ to SQL 绑定到我的 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
但我遇到的问题是网格只抓取前 10 行(如预期的那样),但我需要获取它,以便它能够识别表中有 200 行,以便显示分页图标.
如果我使用下拉列表显示 50 条记录,则显示 50 条,但仍然没有分页图标让我进入下一个 50 条。
我做错了什么?
【问题讨论】:
-
再次感谢@Martin 的帮助。我在我的博客上发布了我的发现,希望其他人可以找到并使用dotnetblogger.com/post/2010/03/07/…
标签: telerik radgrid custom-paging