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 に答える