为GridView添加两种自定义分页样式
时间: 2024-05-07 15:21:35 浏览: 12
GridView是一个非常常用的ASP.NET控件,它可以方便地呈现数据,并且支持分页功能。在GridView中,可以使用内置的分页样式,也可以自定义分页样式。下面我将介绍两种自定义分页样式。
1. 自定义分页样式一:使用自定义模板
GridView提供了一个PagerTemplate属性,可以使用这个属性来自定义分页模板。下面是一个简单的例子:
```html
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Age" HeaderText="Age" />
</Columns>
<PagerTemplate>
<div class="pagination">
<span>共<%# GridView1.PageCount %>页,当前第<%# GridView1.PageIndex+1 %>页</span>
<ul>
<li><a href="#" onclick="javascript:__doPostBack('GridView1','Page', '<%= GridView1.PageIndex-1 %>')">上一页</a></li>
<% for (int i = 0; i < GridView1.PageCount; i++) { %>
<li <% if (GridView1.PageIndex == i) { %>class="active"<% } %>><a href="#" onclick="javascript:__doPostBack('GridView1','Page', '<%= i %>')"><%= i+1 %></a></li>
<% } %>
<li><a href="#" onclick="javascript:__doPostBack('GridView1','Page', '<%= GridView1.PageIndex+1 %>')">下一页</a></li>
</ul>
</div>
</PagerTemplate>
</asp:GridView>
```
在这个例子中,我们使用PagerTemplate属性定义了一个分页模板。该模板包含一个div元素,用于包含分页控件。在div元素中,我们使用了一些HTML代码和ASP.NET表达式来生成分页控件。
在分页控件中,我们使用了一个ul元素和一些li元素来呈现页码。在每个li元素中,我们使用了一个a元素和一个onclick事件来触发GridView的分页功能。在onclick事件中,我们使用了一个__doPostBack函数来向服务器发送分页请求,并且传递了两个参数:GridView的ID和分页索引。
2. 自定义分页样式二:使用第三方分页插件
除了使用自定义模板之外,我们还可以使用第三方分页插件来自定义GridView的分页样式。下面是一个使用Bootstrap Paginator插件的例子:
```html
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Age" HeaderText="Age" />
</Columns>
</asp:GridView>
<div id="pagination"></div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-paginator/2.2.5/bootstrap-paginator.min.js"></script>
<script>
$(function () {
$('#pagination').bootstrapPaginator({
currentPage: <%= GridView1.PageIndex+1 %>,
totalPages: <%= GridView1.PageCount %>,
onPageChanged: function (e, oldPage, newPage) {
__doPostBack('GridView1', 'Page', newPage-1);
}
});
});
</script>
```
在这个例子中,我们使用了Bootstrap Paginator插件来自定义分页样式。在页面加载完成之后,我们使用jQuery选择器选中了一个id为pagination的div元素,并且调用了bootstrapPaginator函数来初始化分页控件。在bootstrapPaginator函数中,我们传递了三个参数:当前页码、总页码数和一个回调函数。在回调函数中,我们使用__doPostBack函数向服务器发送分页请求,并且传递了两个参数:GridView的ID和分页索引。
这两种自定义分页样式都非常简单易懂,可以根据自己的需求进行选择和修改。