2016-04-26 4 views
-1

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

<asp:Repeater ID="Repeater1" runat="server" > 

     <ItemTemplate> 

     <asp:HyperLink ID="HyperLink1" ImageUrl='<%#"Images/" + Eval("Name") %>' CssClass="img img-responsive thumbnail center-block " runat="server" width="234px" height="250px" ToolTip="check to buy" /> 

     </ItemTemplate> 

    </asp:Repeater> 
    </div> 

Предыдущая страница Следующая страница

private void ListImages(int SelectedPage) 
    { 
     DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~/Images")); 
     FileInfo[] file = dir.GetFiles(); 
     ArrayList list = new ArrayList(); 
     foreach (FileInfo info in file) 
     { 
      if (info.Extension == ".jpg" || info.Extension == ".jpeg" || info.Extension == ".gif" || info.Extension == ".png") 
      { 
       list.Add(info); 

      } 
     } 


     Repeater1.DataSource = list; 
     Repeater1.DataBind(); 

      // Step 2: Create PagedDataSource instance and set its properties 
      PagedDataSource pds = new PagedDataSource(); 
      pds.DataSource = list; 
      pds.AllowPaging = true; 
      pds.PageSize = 2; 
      if (SelectedPage > (pds.PageCount - 1)) 
      { 
      SelectedPage = pds.PageCount - 1; 
      } 
      if (SelectedPage < 0) 
      SelectedPage = 0; 
      pds.CurrentPageIndex = SelectedPage; 

      // Step 3: Bind PagedDataSource to Repeater and set LinkButtons' behavior 
      Repeater1.DataSource = pds; 
      if (pds.IsLastPage) 
       lbNext.Enabled = false; 
      else 
       lbNext.Enabled = true; 

      if (pds.IsFirstPage) 
       lbPrevious.Enabled = false; 
      else 
       lbPrevious.Enabled = true; 

    } 

ответ

0

Вы должны установить PageSize 10 и DataBind() Ретранслятор:

// Step 2: Create PagedDataSource instance and set its properties 
      PagedDataSource pds = new PagedDataSource(); 
      pds.DataSource = list; 
      pds.AllowPaging = true; 
      pds.PageSize = 10; //Display 10 images in each page 
      if (SelectedPage > (pds.PageCount - 1)) 
      { 
       SelectedPage = pds.PageCount - 1; 
      } 
      if (SelectedPage < 0) 
       SelectedPage = 0; 
      pds.CurrentPageIndex = SelectedPage; 

      // Step 3: Bind PagedDataSource to Repeater and set LinkButtons' behavior 
      Repeater1.DataSource = pds; 
      Repeater1.DataBind(); //Like this