기본적으로 왠만한건(?) 다 제공이된다

image

하지만 디자이너와 같이 작업을 한다면...

image

암튼 위에처럼 페이징을 꾸밀수있따 ㅋㅋ

이미지버튼을 쓰던지.. CommandName 와 CommandArgument  만 세팅해주면된다

위의 이미지 코드

<PagerTemplate>

<asp:Button ID="Button1" runat="server" CommandArgument="1" CommandName="Page" Text="1" />

<--1페이지

<asp:Button ID="Button2" runat="server" CommandArgument="2" CommandName="Page" Text="2" />

<--2페이지

<asp:Button ID="Button3" runat="server" CommandArgument="First" CommandName="Page"   Text="First" />

<--처음으로

<asp:Button ID="Button4" runat="server" CommandArgument="Next" CommandName="Page"   Text="Next" />

<--다음페이지
</PagerTemplate>

위에는 숫자(페이지번호)는 버튼은 For문을 돌리던지 어케 알아서....

(CustomersGridView.PageCount 이용)

아래는 MSDN....

이미지를 사용하여 페이징 컨트롤의 모양을 사용자 지정할 수도 있습니다. PagerSettings 클래스에는 첫 번째, 마지막, 이전 및 다음 페이지 명령 단추에 대한 이미지 URL 속성이 포함되어 있습니다.

마지막으로, GridView 컨트롤의 PagerStyle 속성을 TableItemStyle 값으로 설정하여 페이징 명령의 모양을 조정할 수 있습니다.

데이터 페이징 템플릿

GridView 컨트롤의 AllowPaging 속성을 true로 설정하면 GridView 컨트롤에서 페이징을 위한 UI(사용자 인터페이스) 컨트롤을 자동으로 추가합니다. PagerTemplate 템플릿을 추가하여 페이징을 위한 UI를 사용자 지정할 수 있습니다. 수행할 페이징 작업을 지정하려면 CommandName 속성이 Page로 설정되고 CommandArgument 속성이 다음 값 중 하나로 설정된 Button 컨트롤을 포함합니다.

  • First   첫 번째 페이지로 이동하려는 경우

  • Last   마지막 페이지로 이동하려는 경우

  • Prev   이전 페이지로 이동하려는 경우

  • Next   데이터의 다음 페이지로 이동하려는 경우

  • 숫자(정수값)   특정 페이지로 이동하려는 경우

PagerTemplate 속성을 설정하면 기본 제공 페이저 행 UI는 무시됩니다.

예제

다음 코드 예제에서는 DropDownList 컨트롤을 사용하여 GridView 컨트롤을 탐색하는 데 사용할 수 있는 사용자 지정 페이저 템플릿을 만드는 방법을 보여 줍니다.

<%@ Page language="C#" %>

<script runat="server">

  void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
  {

    // Retrieve the pager row.
    GridViewRow pagerRow = CustomersGridView.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.
    CustomersGridView.PageIndex = pageList.SelectedIndex;

  }

  void CustomersGridView_DataBound(Object sender, EventArgs e)
  {

    // Retrieve the pager row.
    GridViewRow pagerRow = CustomersGridView.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<CustomersGridView.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==CustomersGridView.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 = CustomersGridView.PageIndex + 1;    
      // Update the Label control with the current page information.
      pageLabel.Text = "Page " + currentPage.ToString() +
        " of " + CustomersGridView.PageCount.ToString();
    }   
  }

</script>

<html>
  <body>
    <form runat="server">
      <h3>GridView PagerTemplate Example</h3>

      <asp:gridview id="CustomersGridView"
        datasourceid="CustomersSqlDataSource"  
        autogeneratecolumns="true"
        allowpaging="true"
        ondatabound="CustomersGridView_DataBound" 
        runat="server">
        <pagerstyle forecolor="Blue"
          backcolor="LightBlue"/>
        <pagertemplate>
          <table width="100%">                   
            <tr>                       
              <td width="70%">
                <asp:label id="MessageLabel"
                  forecolor="Blue"
                  text="Select a page:"
                  runat="server"/>
                <asp:dropdownlist id="PageDropDownList"
                  autopostback="true"
                  onselectedindexchanged="PageDropDownList_SelectedIndexChanged"
                  runat="server"/>
              </td>  
              <td width="70%" align="right">
                <asp:label id="CurrentPageLabel"
                  forecolor="Blue"
                  runat="server"/>
              </td>
            </tr>                   
          </table>
        </pagertemplate>
      </asp:gridview>
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource" 
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
    </form>
  </body>
</html>

+ Recent posts