1

我有一个绑定了数千条记录的 GirdView。每当我们遍历分页时,我都为 GirdView 应用了分页,请求再次发送到服务器,整个数据从 SQLServer DB 加载到 GridView 中,我想避免服务器往返。是否可以先加载数据 100 条记录,然后从 101 到 200 等等..从 DataTable 或 DataSet 滚动网格或分页时的记录?

与 Facebook 类似,仅当用户向下滚动页面时才会在页面上加载数据。是否可以使用 C# 在 ASP.NET 中进行操作?

请给我建议

4

3 回答 3

1

将 DataTable 转换为 json 格式:

    public static string DataTableToJSON(DataTable table)
    {
        List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();

        foreach (DataRow row in table.Rows)
        {
            Dictionary<string, object> dict = new Dictionary<string, object>();

            foreach (DataColumn col in table.Columns)
            {
                dict[col.ColumnName] = row[col];
            }
            list.Add(dict);
        }
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Serialize(list);
    }
于 2014-02-24T04:49:38.640 回答
0

是的,但可能相当复杂。您最好使用其中一种 Javascript 模型绑定框架(Backbone/KnockoutJs)来实现这一点。

但是,如果您确实想这样做,则需要将 GridView 放在 UpdatePanel 中,然后在 Javascript 中侦听窗口滚动事件,并且每次触发事件时重新绑定 GridView 数据源。

于 2012-08-13T08:29:20.397 回答
0

为此目的使用自定义分页,并在从数据库中获取数据时使用跳过接受您的查询。

于 2013-06-13T04:02:36.350 回答