2

多数のレコードを格納するデータテーブルがあります。シード 1 で自動インクリメントされる ID という列があります。

ページング コントロールを実装しました。表示する必要がある最初と最後のレコードの ID はわかっていますが、データテーブルから特定の行だけを抽出する方法や、それが実際に可能かどうかはわかりません。それは可能ですか、それともたとえばデータセットを使用する必要がありますか?

SiteFinity という CMS 製品を使用しているため、DB にアクセスして SQLDataAdapter などを使用することはできません。

4

1 に答える 1

2

これは非常にエレガントなソリューションではないかもしれませんが、うまくいくかもしれません。以下のコードに基づいて、開始インデックスと次のインデックスを把握できると思います。

DataTable dt = GetTable(); // this represents where your datatable is coming from
DataTable temp = dt.Clone();
DataRow[] rows = dt.Select("ID >= 1"); //insert the next begining index

int pageSize = 5;
int ctr = 0;
foreach(var row in rows)
{
    DataRow r = temp.NewRow();

    r["ID"] = row["ID"]; 
    r["Name"] = row["Name"];

   temp.Rows.Add(r); //its neccesary to create a new datarow or you'll get an exception if u add a row already belonging to a datatable

  ctr++;

  if(ctr == pageSize) break;
}

//at this point temp hold either 0 rows or <= pageSize rows and you can bind your control to it.
于 2010-12-21T16:24:27.693 に答える