oPage未定义数据表和twitter引导程序
oPaging is undefined with datatables and twitter-bootstrap
在一个项目中,我使用数据表1.10.2和引导样式的分页,这个脚本:
$.extend($.fn.dataTableExt.oPagination, {
bootstrap: {
fnInit: function(oSettings, nPaging, fnDraw) {
var els, fnClickHandler, oLang;
oLang = oSettings.oLanguage.oPaginate;
fnClickHandler = function(e) {
e.preventDefault();
if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
return fnDraw(oSettings);
}
};
$(nPaging).addClass("pagination").append("<ul>" + "<li class='"prev disabled'"><a href='"#'">← " + oLang.sPrevious + "</a></li>" + "<li class='"next disabled'"><a href='"#'">" + oLang.sNext + " → </a></li>" + "</ul>");
els = $("a", nPaging);
$(els[0]).bind("click.DT", {
action: "previous"
}, fnClickHandler);
return $(els[1]).bind("click.DT", {
action: "next"
}, fnClickHandler);
},
fnUpdate: function(oSettings, fnDraw) {
var an, i, iEnd, iHalf, iListLength, iStart, ien, j, oPaging, sClass, _results;
oPaging = oSettings.oInstance.fnPagingInfo();
iListLength = 5;
an = oSettings.aanFeatures.p;
i = void 0;
ien = void 0;
j = void 0;
sClass = void 0;
iStart = void 0;
iEnd = void 0;
iHalf = Math.floor(iListLength / 2);
if (oPaging.iTotalPages < iListLength) {
iStart = 1;
iEnd = oPaging.iTotalPages;
} else if (oPaging.iPage <= iHalf) {
iStart = 1;
iEnd = iListLength;
} else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) {
iStart = oPaging.iTotalPages - iListLength + 1;
iEnd = oPaging.iTotalPages;
} else {
iStart = oPaging.iPage - iHalf + 1;
iEnd = iStart + iListLength - 1;
}
i = 0;
ien = an.length;
_results = [];
while (i < ien) {
$("li:gt(0)", an[i]).filter(":not(:last)").remove();
j = iStart;
while (j <= iEnd) {
sClass = (j === oPaging.iPage + 1 ? "class='"active'"" : "");
$("<li " + sClass + "><a href='"#'">" + j + "</a></li>").insertBefore($("li:last", an[i])[0]).bind("click", function(e) {
e.preventDefault();
oSettings._iDisplayStart = (parseInt($("a", this).text(), 10) - 1) * oPaging.iLength;
return fnDraw(oSettings);
});
j++;
}
if (oPaging.iPage === 0) {
$("li:first", an[i]).addClass("disabled");
} else {
$("li:first", an[i]).removeClass("disabled");
}
if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
$("li:last", an[i]).addClass("disabled");
} else {
$("li:last", an[i]).removeClass("disabled");
}
_results.push(i++);
}
return _results;
}
}
});
if ($.fn.DataTable.TableTools) {
$.extend(true, $.fn.DataTable.TableTools.classes, {
container: "DTTT btn-group",
buttons: {
normal: "btn",
disabled: "disabled"
},
collection: {
container: "DTTT_dropdown dropdown-menu",
buttons: {
normal: "",
disabled: "disabled"
}
},
print: {
info: "DTTT_print_info modal"
},
select: {
row: "active"
}
});
$.extend(true, $.fn.DataTable.TableTools.DEFAULTS.oTags, {
collection: {
container: "ul",
button: "li",
liner: "a"
}
});
}
}).call(this);
当我有一个单独的数据表时,它是有效的,但当我有多个数据表时它在if (oPaging.iTotalPages < iListLength) {
行中断。我看到除了最后一个数据表之外,所有数据表的oSettings.oInstance
都为空。
我该怎么做才能让它正常工作?
在下面添加插件
$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
{
return {
"iStart": oSettings._iDisplayStart,
"iEnd": oSettings.fnDisplayEnd(),
"iLength": oSettings._iDisplayLength,
"iTotal": oSettings.fnRecordsTotal(),
"iFilteredTotal": oSettings.fnRecordsDisplay(),
"iPage": oSettings._iDisplayLength === -1 ?
0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
"iTotalPages": oSettings._iDisplayLength === -1 ?
0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
};
};
相关文章:
- Twitter引导程序Typeahead-Id&标签
- 如何平滑地设置twitter引导程序进度条的动画
- Twitter引导程序在下拉列表打开时停止传播
- 具有Twitter引导程序的水平滚动表
- 如何使用Twitter引导程序点击按钮导航到另一个页面
- 覆盖twitter引导程序Textbox发光和阴影
- 如何使twitter引导程序子菜单在左侧打开
- asp.net应用程序活动类中的Twitter引导程序导航
- twitter引导程序转盘直接链接到特定幻灯片
- 折叠导航按钮不适用于twitter引导程序设计的移动设备
- 如何隐藏和显示twitter引导程序选项卡
- Twitter引导程序的高级表单库
- 使用Twitter引导程序's Scrollspy到延迟加载(滚动加载)异步JavaScript
- Twitter引导程序旋转木马跳过问题
- Twitter引导程序3-导航栏固定顶部-多行时重叠内容
- Twitter引导程序示例在IE8中不起作用
- Twitter引导程序弹出在网站上不起作用:未获取引用错误
- 如何在twitter引导程序2.3.2中设置网页的最小宽度
- Twitter引导程序:删除/切换类似复选框的按钮组的活动状态
- 图片悬停在Twitter引导程序上