我有一个web网格,选择您最喜欢的,因为我真的认为它不会改变这个问题的答案--微软、Telerik、Dev -而且我已经设置它使用分页。
我正在使用Telerik,但我不把它放在标签中,因为我不认为问题在于网格本身,我认为问题在于我如何定位数据库代码。
我有一个继承自WebConrol的类,当我对网格进行页面时,这段代码再次运行,这将重新绑定网格。我的问题是访问数据库(并等待)多次不必要的时间。
对于任何类型的web数据网格,我都会给出答案。如果有必要,我可以把它翻译成我的网格类型。
Imports System.Data
Imports System.Web.UI.WebControls
Imports Telerik.Web.UI
Imports System.Web.UI
Imports System.Drawing
<ToolboxData("<{0}:ReportGrid runat=server></{0}:ReportGrid>")> _
<ToolboxBitmap(GetType(ReportGrid), "MyCompany.Web.UI.WebControls.ReportGrid.bmp")> _
Public Class ReportGrid
Inherits CompositeControl
Private _Grid As RadGrid
Private ReadOnly Property Grid As RadGrid
Get
If _Grid Is Nothing Then
_Grid = New RadGrid
_Grid.ClientSettings.Scrolling.UseStaticHeaders = True
'_Grid.Skin = "Black"
_Grid.AllowFilteringByColumn = True
_Grid.EnableAjaxSkinRendering = True
_Grid.AllowPaging = True
_Grid.AllowSorting = True
_Grid.ViewStateMode = System.Web.UI.ViewStateMode.Enabled
_Grid.GridLines = GridLines.Both
End If
Return _Grid
End Get
End Property
Protected Overrides Sub CreateChildControls()
Controls.Add(Grid)
'If Not Page.IsPostBack Then
'This code runs on every page load
Dim DataTable As DataTable = MyCompany.Library.Database.GetDataTable("My Connection String", "My Query")
Grid.DataSource = DataTable
Grid.DataBind()
'End If
End Sub
End Class发布于 2015-01-16 04:46:25
作为Telerik用户,我建议使用RadGrid的OnNeedDataSource来处理分页数据。这里有更多关于这是如何工作的信息:
http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/simple-vs-advanced/defaultcs.aspx
如果要在网格中显示几十万或数百万条记录,则需要考虑使用自定义分页解决方案--即只从当前网格页上显示的数据源中提取记录,而不是每次回发时提取所有记录。
看看如何在Telerik RadGrid中实现自定义分页的示例:
http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/paging/custom-paging/defaultcs.aspx
https://stackoverflow.com/questions/27945502
复制相似问题