GridView.PageIndex 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 표시된 페이지의 인덱스를 가져오거나 설정합니다.
public:
virtual property int PageIndex { int get(); void set(int value); };
[System.ComponentModel.Browsable(true)]
public virtual int PageIndex { get; set; }
[<System.ComponentModel.Browsable(true)>]
member this.PageIndex : int with get, set
Public Overridable Property PageIndex As Integer
속성 값
현재 표시된 페이지의 0부터 시작하는 인덱스입니다.
- 특성
예외
PageIndex 속성이 0보다 작은 값으로 설정된 경우
예제
다음 예제에서는 컨트롤에 PageIndex 현재 표시 된 페이지의 GridView 인덱스를 확인 하는 속성을 사용 하는 방법을 보여 줍니다. 또한 이 예제에서는 사용자가 호출기 행에서 값을 선택한 후 표시할 페이지를 지정하는 데 속성을 사용하는 방법을 PageIndex 보여 줍니다.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected 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;
}
protected 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 xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView PagerTemplate Example</title>
</head>
<body>
<form id="form1" 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 style="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 style="width:70%; text-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>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub PageDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve the pager row.
Dim pagerRow As GridViewRow = CustomersGridView.BottomPagerRow
' Retrieve the PageDropDownList DropDownList from the bottom pager row.
Dim pageList As DropDownList = CType(pagerRow.Cells(0).FindControl("PageDropDownList"), DropDownList)
' Set the PageIndex property to display that page selected by the user.
CustomersGridView.PageIndex = pageList.SelectedIndex
End Sub
Protected Sub CustomersGridView_DataBound(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve the pager row.
Dim pagerRow As GridViewRow = CustomersGridView.BottomPagerRow
' Retrieve the DropDownList and Label controls from the row.
Dim pageList As DropDownList = CType(pagerRow.Cells(0).FindControl("PageDropDownList"), DropDownList)
Dim pageLabel As Label = CType(pagerRow.Cells(0).FindControl("CurrentPageLabel"), Label)
If Not pageList Is Nothing Then
' Create the values for the DropDownList control based on
' the total number of pages required to display the data
' source.
Dim i As Integer
For i = 0 To CustomersGridView.PageCount - 1
' Create a ListItem object to represent a page.
Dim pageNumber As Integer = i + 1
Dim item As ListItem = 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 Then
item.Selected = True
End If
' Add the ListItem object to the Items collection of the
' DropDownList.
pageList.Items.Add(item)
Next i
End If
If Not pageLabel Is Nothing Then
' Calculate the current page number.
Dim currentPage As Integer = CustomersGridView.PageIndex + 1
' Update the Label control with the current page information.
pageLabel.Text = "Page " & currentPage.ToString() & _
" of " & CustomersGridView.PageCount.ToString()
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView PagerTemplate Example</title>
</head>
<body>
<form id="form1" 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 style="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 style="width:70%; text-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>
설명
페이징 기능을 사용하도록 설정하면(속성을 설정하여AllowPaging) 현재 표시된 페이지의 인덱스 확인에 이 속성을 사용합니다PageIndex.true
이 속성을 사용하여 표시된 페이지를 프로그래밍 방식으로 변경할 수도 있습니다.