c# - 我们如何优化 gridview 中的记录?

标签 c# asp.net

我想在 gridview 中从 sqlserver 表绑定(bind)至少 30,000 条记录。我只想使用 GridView 一次绑定(bind) 50 条记录。网格还具有分页功能,当我单击下一页时,应显示下 50 条记录,然后再下一页单击另外 50 条记录。

我该如何优化这个东西。我希望如果绑定(bind)了 30,000 条记录,那么网格应该像绑定(bind) 50 条记录一样工作。

谢谢

最佳答案

正如其他人所建议的,有很多方法可以做到这一点。 我想补充一些内容

a)从后端处理(这就是我在当前项目中所做的)

--Usage   : USP_DataListing 0,12
ALTER PROCEDURE [dbo].[USP_DataListing] 
    -- Add the parameters for the stored procedure here
    (@StartIndex INT, @ItemsToDisplay INT)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    DECLARE @EndIndex INT
    SET @StartIndex = @StartIndex * @ItemsToDisplay
    SET @EndIndex = @StartIndex + @ItemsToDisplay

    BEGIN
        SELECT 
            SlNo
            ,Column(s)
            FROM (
        SELECT  
         ROW_NUMBER() OVER (ORDER BY GETDATE() DESC) AS SlNo
                ,i.Column(s)                
            FROM dbo.tblName i)X
            WHERE X.SlNo BETWEEN @StartIndex+1 AND @EndIndex
    END

2) 如果您使用 dotnet 版本 3.0+,您可以借助 linq 的 Take() and Skip() 的帮助。方法

关于c# - 我们如何优化 gridview 中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026320/

相关文章:

c# - 从所有 Outlook 联系人文件夹中获取联系人 Microsoft Graph

asp.net - 是否可以确定 IIS7 在 ASP.NET 中运行的托管管道?

asp.net - 允许 允许 AD 组访问

.net - 如何使用 ASP.NET 路由路由树结构的 URL?

asp.net - 如何使用 J 查询使只读文本框在鼠标悬停时可编辑

asp.net - 找不到不变名称 'System.Data.SqlClient;' 的 ADO.NET 提供程序( Entity Framework MVC)

c# - 使用 DllImport 在 C# 中调用 OpenGL 函数?

c# - 以空格作为 InnerText 的 Xml

c# - Telegram Bot 无法接收 preCheckoutQuery 更新

c# - 具有序列 id 的 Linq 汇总