GridView利用PagerTemplate做分頁顯示設置上一頁下一頁轉到下拉轉頁


效果如圖:

代碼如下:

aspx頁:

<asp:GridView ID="GridViewMain" runat="server"

OnPageIndexChanging="GridViewMain_PageIndexChanging"

ondatabound="GridViewMain_DataBound"

PageSize="10">

<PagerTemplate>
         <asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1)  + "頁/共" + (((GridView)Container.NamingContainer).PageCount) + "頁" %> '></asp:Label> 
         <asp:LinkButton ID="lbnFirst" runat="Server" Text="首頁"  Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="First" ></asp:LinkButton> 
        <asp:LinkButton ID="lbnPrev" runat="server" Text="上一頁" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="Prev"  ></asp:LinkButton> 
        <asp:LinkButton ID="lbnNext" runat="Server" Text="下一頁" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Next" ></asp:LinkButton> 
         <asp:LinkButton ID="lbnLast" runat="Server" Text="尾頁"   Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Last" ></asp:LinkButton> 
         到第<asp:dropdownlist id="PageDropDownList"
                  autopostback="true"
                  onselectedindexchanged="PageDropDownList_SelectedIndexChanged"
                  runat="server"/> 頁 
         
     </PagerTemplate>

cs頁

 protected void GridViewMain_PageIndexChanging(object sender,GridViewPageEventArgs e)    

{        

GridViewMain.PageIndex = e.NewPageIndex;        

InitListFillData();   //數據綁定

  }    

protected void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)    

{       

  // Retrieve the pager row.        

GridViewRow pagerRow = GridViewMain.BottomPagerRow;       

  // Retrieve the PageDropDownList DropDownList from the bottom pager row.        

DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");       

  // Set the PageIndex property to display that page selected by the user.       

  GridViewMain.PageIndex = pageList.SelectedIndex;        

InitListFillData();   //數據綁定 

}    

protected void GridViewMain_DataBound(Object sender, EventArgs e)    

{      

GridViewMain.BottomPagerRow.Visible = true;//只有一頁數據的時候也再下面顯示pagerrow,需要top的再加Top

   // Retrieve the pager row.        

GridViewRow pagerRow = GridViewMain.BottomPagerRow;        

// Retrieve the DropDownList and Label controls from the row.        

DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");        

Label pageLabel = (Label)pagerRow.Cells[0].FindControl("CurrentPageLabel");       

  if (pageList != null)        

{            

// Create the values for the DropDownList control based on           

  // the  total number of pages required to display the data            

// source.            

for (int i = 0; i < GridViewMain.PageCount; i++)           

  {                

// Create a ListItem object to represent a page.                

int pageNumber = i + 1;              

   ListItem item = new ListItem(pageNumber.ToString());                

// If the ListItem object matches the currently selected                

// page, flag the ListItem object as being selected. Because               

  // the DropDownList control is recreated each time the pager               

  // row gets created, this will persist the selected item in                

// the DropDownList control.                  

if (i == GridViewMain.PageIndex)                

{                   

  item.Selected = true;                

}                

// Add the ListItem object to the Items collection of the               

  // DropDownList.                

pageList.Items.Add(item);         

    }       

  }       

  if (pageLabel != null)      

   {            

// Calculate the current page number.            

int currentPage = GridViewMain.PageIndex + 1;

            // Update the Label control with the current page information.           

  pageLabel.Text = "Page " + currentPage.ToString() +            

   " of " + GridViewMain.PageCount.ToString();        

}    

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM