我有以下代码
self.GetPagination=function(){
var rows=100;
var page_rows=2;
var last=Math.ceil(rows/page_rows);
var previous="";
var next="";
if(last<1){
last=1;
}
alert(ko.toJS(self.PageNo));
var pagenum=ko.toJS(self.PageNo);
var paginationCtrls="";
if(last!=1){
if(pagenum>1){
previous=parseInt(pagenum-1);
paginationCtrls = paginationCtrls+'<button onclick="test('+previous+')" />'+previous+'</button>';
//paginationCtrls=paginationCtrls+"<a href=/pages/ViewAll.aspx?pn="+previous+"\><</a>";
for(i=parseInt(pagenum-2); i<pagenum;i++){
if(i>0){
paginationCtrls=paginationCtrls+'<button onclick="test('+i+')" />'+i+'</button>';
}
}
}
paginationCtrls=paginationCtrls+" "+pagenum+" ";
for(i=parseInt(pagenum)+1;i<=last;i++){
paginationCtrls=paginationCtrls+'<button onclick="test('+i+')" />'+i+'</button>';
if(i>=parseInt(pagenum)+2){
break;
}
}
if(pagenum!=last){
next=parseInt(pagenum)+1;
paginationCtrls=paginationCtrls+'<button onclick="test('+next+')" />'+next+'</button>';
}
}
$("#paginationFooter").append(paginationCtrls);
last="";
}
这是测试功能,在按钮点击后调用,它将页码作为数据集变为变量,并再次调用GetPagination函数。
function test(data){
alert("test called");
self.PageNo=data;
self.GetPagination();
}
当页面重新加载时,它工作正常:每个按钮单击生成动态按钮,下次不会点击。
答案 0 :(得分:0)
self.GetPages();
/*pagination technique*/
self.GetPagination=function()
{
var rows=ko.toJS(self.TotalRecord());
var page_rows=2;
var last=Math.ceil(rows/page_rows);
self.Last=last;
var previous="";
var next="";
if(last<1)
{
last=1;
}
var pagenum="";
pagenum=ko.toJS(self.PageNo);
$("#paginationFooter").empty();
if(pagenum<1)
{
pagenum=1;
}
else if(pagenum>last)
{
pagenum=last;
}
var paginationCtrls="";
if(last!=1)
{
if(pagenum>1)
{
previous=parseInt(pagenum-1);
paginationCtrls=paginationCtrls+'<button type="button" class="btn btn-default btnPagination" value='+previous+'><</button>';
for(i=parseInt(pagenum-2); i<pagenum;i++)
{
if(i>0)
{
paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+i+'>'+i+'</button>';
}
}
}
paginationCtrls=paginationCtrls+" "+pagenum+" ";
for(i=parseInt(pagenum)+1;i<=last;i++)
{
paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+i+'>'+i+'</button>';
if(i>=parseInt(pagenum)+2)
{
break;
}
}
if(pagenum!=last)
{
next=parseInt(pagenum)+1;
paginationCtrls=paginationCtrls+'<button class="btn btn-default btnPagination" type="button" value='+next+'>></button>';
}
}
$("#paginationFooter").append(paginationCtrls);
last="";
}
$(document).on('click', '.btnPagination', function(){
self.ViewAllOffer($(this).val());
});