Пейджинг данных с таблицей данных - PullRequest
2 голосов
/ 21 декабря 2010

У меня есть дата, в которой хранится множество записей.Существует столбец с именем ID, который автоматически внедряется с начальным числом 1.

Я реализовал элемент управления подкачкой.Я знаю идентификатор первой и последней записи, которую мне нужно отобразить, но я не знаю, как извлечь только определенные строки из таблицы данных или действительно ли это возможно.Возможно ли это, или мне нужно использовать набор данных, например?

Я использую продукт CMS с именем SiteFinity, поэтому у меня нет доступа к БД для использования SQLDataAdapter или аналогичного,

1 Ответ

2 голосов
/ 21 декабря 2010

Это может быть не очень элегантное решение, но оно может работать для вас. Я предполагаю, что вы сможете выяснить свой начальный индекс и следующий индекс на основе приведенного ниже кода.

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.
...