GridView (RadGrid) und Benutzerdefinierte Paging
Ok, so bin ich versucht, meine benutzerdefinierte paging geht auf die Telerik RadGrid (ähnlich der asp:Gridview
), aber ich bin immer noch gegen eine Wand. (der erste Teil meiner Frage wurde beantwortet hier)
Also implementierte ich den Vorschlag. Ich verwenden Sie die folgende Gespeicherte Prozedur
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
Dann eine andere gespeicherte Prozedur, um die Anzahl der Datensätze
ALTER PROCEDURE [dbo].[bt_HealthMonitor_GetRecordCount]
AS
SET NOCOUNT ON
return (Select Count(ID) As TotalRecords From bt_HealthMonitor)
Und ich bin mit LINQ to SQL zu binden, um meine 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
Aber das problem, das ich erlebe, ist, dass das raster nur packt die ersten 10 Zeilen (wie erwartet), aber ich brauche, um es zu bekommen, so wird es erkennen, dass es 200 Zeilen in der Tabelle, so dass die paging-icons zeigen.
Wenn ich mit der dropdownlist anzeigen 50 Datensätze, dann 50, aber noch keine paging-icons, um mich auf die nächsten 50.
Was mache ich falsch?
InformationsquelleAutor Chase Florell | 2010-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie auf das raster, wie viele Datensätze es insgesamt. Dies wird durch die Einstellung des Rasters
VirtualItemCount
Eigenschaft (Sie werden auf Abfrage die Gesamtanzahl der Datensätze).Für details, haben Sie einen Blick auf die Dokumentation Seite oder beziehen sich auf die online-demo für benutzerdefinierte paging.
RadGrid1.PageSize
PS: danke für den Hinweis mich in die richtige Richtung so weit.
Nevermind... ich gelöst. Habe vergessen zu setzen
AllowCustomPageing="true"
Sie sind ein star, gespeichert für mich mindestens eine Stunde zu schreiben, die benutzerdefinierte Datenquelle, um diese zu bewältigen, und war nicht sicher, ob es funktionieren wird oder nicht, danke
InformationsquelleAutor M4N
Martin ist richtig in Bezug auf VirtualItemCount. Der einfachste Ort, um dies zu implementieren, ist in der NeedDataSource Veranstaltung.
Denken Sie daran, dass Sie brauchen, um etwas Logik, um Konto für weniger Datensätze auf der letzten Seite. Das bedeutet, dass, wenn Sie haben 14 Datensätze mit 5 pro Seite, werden Sie wollen, stellen Sie sicher, dass Ihre Logik auch nur versucht, zum abrufen von 4 Aufzeichnungen auf den last call.
Hier ist, wie ich es gemacht habe (mit einer generischen Liste):
Natürlich werden Sie wollen, tun Sie dies als Teil Ihrer Daten zugreifen Anruf, wenn Sie nur das abrufen der Datensätze aus der Datenbank, wie Sie gehen.
InformationsquelleAutor Trent Ballew
Implementieren Sie können auch mit der ObjectDataSource.
http://www.unboxedsolutions.com/sean/archive/2005/12/28/818.aspx
ich.e mit RadGrid mit ObjectDataSource mit CustomPaging ich.e-Paging-Logik muss umgesetzt werden auf Ihre eigenen.
Auch ObjectDataSource-Klasse hat zwei Methoden
1. SelectMethod (Wo können Sie die Methode angeben, die die Daten zurück)
2. SelectCountMethod (Wo können Sie die Methode angeben, die Renditen der Gesamtzahl)
InformationsquelleAutor dhinesh