기본적으로 왠만한건(?) 다 제공이된다
하지만 디자이너와 같이 작업을 한다면...
암튼 위에처럼 페이징을 꾸밀수있따 ㅋㅋ
이미지버튼을 쓰던지.. 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>
'ASP.NET AJAX' 카테고리의 다른 글
디자이너를 위한 asp.net 페이지 만들기 (0) | 2011.06.14 |
---|---|
[URL 맵핑/블로그 주소 / 단축주소] Routing in ASP.NET (0) | 2010.11.02 |
[Forder /Directory.GetFiles] 특정폴더 파일목록가져오기 (1) | 2010.10.01 |
배열을 DataList에 바인딩하기 (0) | 2010.10.01 |
[ GridView ] DataKeys , RowDataBound (데이터바인딩)간단한 사용법 (0) | 2010.06.01 |
[ FilterExpression,FilterParameters , 다중검색 ] 두개이상 검색할때... (0) | 2010.06.01 |
[마스터 페이지, masterpage] 에서 유저컨트롤 안에 접근하기 (0) | 2010.06.01 |
[마스터페이지 , masterpage ] PreviousPage 마스터페이지 컨트롤러에 접근 (0) | 2010.06.01 |
[암호화,MD5,SHA1] 비밀번호 암호화 하기 (0) | 2010.06.01 |
[PostBackTrigger ]업데이트 판넬 에서 파일 업로드 (0) | 2010.06.01 |