2016-11-16 2 views
0
protected void showproduct() 
    { 
     int pagecount = 0; 
     int currentpage = 0; 
     if (Request.QueryString["page"] != null) 
     { 
      currentpage = Int32.Parse(Request.QueryString["page"]); 
     } 

     Response.Write("</br>"+currentpage); 
     MySqlConnection dbcon = new MySqlConnection("Server=localhost; Database=ip; Uid=root; Password=root;"); 
     MySqlCommand dbcmd = new MySqlCommand(); 
     dbcon.Open(); 
     dbcmd.Connection = dbcon; 
     for (int q = 0; q <= currentpage; q++) 
     { 
      if (currentpage >2) 
      { 
       pagecount = q * 3; 
      }else if(currentpage==2){ 
       pagecount = 3; 
      } 
     } 
     dbcmd.CommandText = "select * from product where id >" + pagecount + " order by id asc limit 3"; 
     //dbcmd.CommandText = "select * from product limit "+ pagecount +",3"; 
     MySqlDataAdapter adapter = new MySqlDataAdapter(dbcmd.CommandText, dbcon); 
     DataTable t = new DataTable(); 
     adapter.Fill(t); 
     ListView1.DataSource = t; 
     ListView1.DataBind(); 

    } 

http://prntscr.com/d83mgh На странице 2 можно просмотретьPagination C# ASPX помощь с использованием ListView

http://prntscr.com/d83msj При нажатии на странице 3 ничего не показан

У меня как 9 данных в моем источнике

+0

Вы должны попытаться улучшить свой вопрос, добавив хороший объяснение того, что вы пытаетесь сделать, и где это проблема. – McNets

+0

Ваш вопрос ОЧЕНЬ расплывчатый. Но я думаю, вам стоит взглянуть на [DataPager Control] (http://www.aspsnippets.com/Articles/Using-DataPager-control-with-example-in-ASPNet.aspx). – VDWWD

+0

Возможно, вы можете уточнить, как вы решили эту проблему, чтобы помочь кому-то другому, у кого есть аналогичная проблема? –

ответ

0

Я предполагаю, что элементы в db имеют непрерывные идентификаторы без отверстий.

Тогда можно вычислить первый идентификатор, чтобы показать, используя индекс выбранной страницы и количество элементов, которые будут показаны на странице, как это:

const int itemsPerPage = 3; // number of items per page to be shown 
const int minId = 1; // id of first record in db 

// page selected by user in ui 
int selectedPage; 
if (Request.QueryString["page"] != null) { 
    // first page has index 0 to simplify the calculation 
    selectedPage = Int32.Parse(Request.QueryString["page"]) - 1; 
} 

// id of first record to be shown 
int minIdToBeShown = minId + itemsPerPage * selectedPage; 

// fetch records including the first record to be shown on the page 
dbcmd.CommandText = "select * from product where id >=" + minIdToBeShown 
        + " order by id asc limit " + itemsPerPage; 
Смежные вопросы