asp.net включает разбиение на страницы в динамически генерируемой таблице - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть существующий клиентский код, в котором средство чтения данных sql используется для извлечения записей из базы данных и кода, содержимое таблицы генерируется в виде строки, а затем присваивается элементу asp: literal на странице.

Dim myreader As SqlDataReader = selectcmd.ExecuteReader

If myreader.HasRows Then
str = str & "" // str is string

While myreader.Read()
If Not IsDBNull(myreader("column1")) Then
  str = str & "<tr><td align=left><font color=white>" & myreader("column1") & "</font></td></tr>"
End If
End While

// in the end string is assigned to Text attribute of asp:literal element

Клиент хочет использовать нумерацию страниц и чтобы только 10 строк были видны одновременно, а остальные должны просматриваться с помощью подкачки.

Может кто-нибудь подсказать, как этого можно достичь.

Спасибо.

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Вы пробовали один из встроенных элементов управления, например GridView ?С его помощью вы можете настроить подкачку, сортировку и т. Д.Или есть какая-то причина, по которой вы записываете это в литерал?

0 голосов
/ 02 ноября 2011

Большую часть времени проводить такого рода конкатенацию HTML на стороне сервера - очень плохая идея.

Для вашего сценария вы можете использовать SQLDataSource для подачи данных в сетку и просто включить поддержку подкачки и сортировки. Вам не нужно было бы писать одну строку кода, чтобы он работал, кроме объявления вашего источника данных в разметке.

Здесь отличный учебник.

Если это не поможет вам, вам придется реализовать разбиение на страницы самостоятельно, попросив базу данных вернуть ровно столько строк, сколько вам нужно, исходя из номера текущей страницы. Как правило, вам нужно использовать ROW_NUMBER() и TOP для вывода результатов на стороне базы данных.

Вот пример того, как выполнить подкачку на стороне базы данных.

...