导读部分
教程部分
本帖子主要讲解菜单管理页面中的分页列表页面html与js的实现方法,效果如下图所示:
本页面,主要继承了母版页ChildMainMaster,本次讲解中,主要讲解分页的html与js实现方式 1. 页面html如下: [C#] 纯文本查看 复制代码 <asp:Content ID="Content2" ContentPlaceHolderID="body" runat="server">
<div class="si-main">
<div class="si-block">
<div class="si-form">
<table class="table table-form">
<tr>
<td>
<div class="">
<label style="float:left;margin-left:50px;display:inline-block;line-height:30px;">列表查询类型:</label>
<div class="form-control-wrap">
<select name="carreType" id="ddl_searchType" style="width:80px;height:30px;" class="high" data-combobox>
<option value="1" <%if(searchType == "1"){%> selected="selected"<%} %>>菜单ID</option>
<option value="2" <%if(searchType == "2"){%> selected="selected"<%} %>>菜单名称</option>
<option value="3" <%if(searchType == "3"){%> selected="selected"<%} %>>分类ID</option>
<option value="4" <%if(searchType == "4"){%> selected="selected"<%} %>>分类名称</option>
</select>
</div>
<div class="form-control-wrap">
<input class="form-control short" id="txt_searchText" name="txt_searchText" value="<%=searchText %>"/>
</div>
<a href="javascript:;" class="btn btn-success" id="btnSearch">查询</a>
<a class="btn btn-primary" href="/Sys/SysMenuAdd.aspx">添加菜单</a>
</div>
</td>
</tr>
</table>
<table class="table table-page" id="grid">
<thead>
<tr>
<td>菜单编号</td>
<td>菜单名称</td>
<td>父菜单编号</td>
<td>链接地址</td>
<td>排序编码</td>
<td>操作</td>
</tr>
</thead>
<tbody>
<%foreach (var info in list)
{
var trBgColor = string.Empty;
if (info.ParentID == 0) { trBgColor = "rgb(240, 248, 255)"; }
%>
<tr style="background-color:<%=trBgColor %>">
<td> <%=info.MenuID%></td>
<td><%=info.MenuName%></td>
<td><%=info.ParentID%></td>
<td><%=info.LinkUrl%></td>
<td class="color-weak"><%=info.OrderID%></td>
<td>
<a href="/Sys/SysMenuAdd.aspx?action=edit&menuId=<%=info.MenuID %>" class="btn btn-success btn-small">修改</a>
<a href="javascript:;" class="btn btn-success btn-small del" data-value="<%=info.MenuID %>" data-action="del">删除</a>
</td>
</tr>
<%} %>
</tbody>
<tfoot>
<tr>
<td colspan="6">
<div class="pagination-wrap">
<div class="count">
<span>总页数 0</span><span>总记录数 0</span>
</div>
<ul class="pagination" id="pagination">
</ul>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</asp:Content>
从以上代码可以看出,本系统使用的是table进行布局,主要有如下两个样式控制, 1, ‘.table-form’主要用在查询条件使用, 2. ‘.table-page’主要重在分页列表数据显示使用
分页js实现如下: [C#] 纯文本查看 复制代码 <script type="text/javascript">
var pagerOption = {
container: $( '#pagination' ),
displayPagerCount: 4,
pageSize: <%=PAGESIZE %>,
currentIndex: <%=pageIndex %>,
totalCount: <%=this.TotalCount %>,
pageCallback: function ( pageIndex ) {
var $tbody = $( '#grid' ).find( 'tbody' );
var $trCloned = $tbody.find( 'tr:first' ).clone();
$tbody.empty();
var searchType = $('#ddl_searchType').val();
var searchText = $('#txt_searchText').val();
$.post('/System/SysMenuList.aspx',
{action:'page', pageIndex:pageIndex, searchType:searchType, searchText:searchText},
function (data) {
if (data.reCode > 0) {
$(data.Info).each(function (index, item) {
var $newTr = $trCloned.clone();
var tdArray = $newTr.children('td');
$newTr.attr('bgcolor','');
if(item.ParentID == 0){
$newTr.attr('bgcolor','#d8d8d8');
}
$(tdArray[0]).text(item.MenuID);
$(tdArray[1]).text(item.MenuName);
$(tdArray[2]).text(item.ParentID);
$(tdArray[3]).text(item.LinkUrl);
$(tdArray[4]).text(item.OrderID);
var optStr = "";
optStr += '<a href="/Sys/SysMenuAdd.aspx?action=edit&menuID=' + item.MenuID + '&pageIndex=' + pageIndex + '" class="btn btn-success btn-small">修改</a>';
optStr += '<a href="javascript:;" class="btn btn-success btn-small del" data-value="' + item.MenuID + '" data-action="del" data-pageIndex="' + pageIndex + '">删除</a>';
$(tdArray[5]).html(optStr);
$tbody.append($newTr);
});
pagerOption.currentIndex = pageIndex;
pagerOption.totalCount = data.total;
renderPagination( pagerOption );
}
}, 'json');
}
}
module( ['loadScript'], function(load) { load.onSuccess( '/Resource/js/user-common.js', function() {
renderPagination( pagerOption );
} ); } );
</script>
分页逻辑js主要使用了js ‘/Resource/js/user-common.js’其中计算分页页面显示,以及分页数据添加 在以上的js中,可以看到,使用了克隆的方式,获取id为‘grid’的tbody第一行,对第一行进行克隆 循环调ajax获取的json数据中的list数据,将每一行的数据,替换克隆单元格相对应的数据即可,讲所有的hmtl append到$( '#grid' ).find( 'tbody' )中即可
备注: 如果替换了table的id,以及tfoot中的分页页面ul的id则在js中也要替换想用的id,否则分页数据不能显示,或者分页页面不能显示 替换内容如下: var pagerOption = { container: $( '#pagination' )
以及pageCallback中的tableid, pageCallback: function ( pageIndex ) { var $tbody = $( '#grid' ).find( 'tbody' ); var $trCloned = $tbody.find( 'tr:first' ).clone(); $tbody.empty();
|