自己做的一个JS读取XML文件 同时读取4个XML文件显示不同地方。。但是分页这里被难住了。。不知道怎么解决。。希望JS高手能帮帮我。
function ZongHe() { var href = location.search; var findStr = "newsTypeID"; var beginIndex = href.indexOf(findStr) + findStr.length + 1; var newsType = href.substr(beginIndex) ? href.substr(beginIndex) : 79; var newsObject = { xmlUrl: "../xml/GameNews_{0}.xml", newsType: newsType, newsTypeName: "综合", newsFormat: "<li><span class='time_news'>{0}</span><a href='javascript:;'>[{1}]</a> <a href='content.aspx?newsId={2}' target='_blank'>{3}</a></li>", pageIndex: 1, pageSize: 10 }; switch (parseInt(newsType)) { case 79: newsObject.newsTypeName = "综合"; break; case 77: newsObject.newsTypeName = "新闻"; break; case 76: newsObject.newsTypeName = "公告"; break; case 62: newsObject.newsTypeName = "活动"; break; } newsObject.xmlUrl = newsObject.xmlUrl.replace("{0}", newsType); loadNews(newsObject); } function NewsList() { var href = location.search; var findStr = "newsTypeID"; var beginIndex = href.indexOf(findStr) + findStr.length + 1; var newsType = href.substr(beginIndex) ? href.substr(beginIndex) : 77; var newsObject = { xmlUrl: "../xml/GameNews_{0}.xml", newsType: newsType, newsTypeName: "综合", newsFormat: "<li><span class='time_news'>{0}</span><a href='javascript:;'>[{1}]</a> <a href='content.aspx?newsId={2}' target='_blank'>{3}</a></li>", pageIndex: 1, pageSize: 10 }; switch (parseInt(newsType)) { case 79: newsObject.newsTypeName = "综合"; break; case 77: newsObject.newsTypeName = "新闻"; break; case 76: newsObject.newsTypeName = "公告"; break; case 62: newsObject.newsTypeName = "活动"; break; } newsObject.xmlUrl = newsObject.xmlUrl.replace("{0}", newsType); loadNews(newsObject); } function GongGao() { var href = location.search; var findStr = "newsTypeID"; var beginIndex = href.indexOf(findStr) + findStr.length + 1; var newsType = href.substr(beginIndex) ? href.substr(beginIndex) : 76; var newsObject = { xmlUrl: "../xml/GameNews_{0}.xml", newsType: newsType, newsTypeName: "综合", newsFormat: "<li><span class='time_news'>{0}</span><a href='javascript:;'>[{1}]</a> <a href='content.aspx?newsId={2}' target='_blank'>{3}</a></li>", pageIndex: 1, pageSize: 10 }; switch (parseInt(newsType)) { case 79: newsObject.newsTypeName = "综合"; break; case 77: newsObject.newsTypeName = "新闻"; break; case 76: newsObject.newsTypeName = "公告"; break; case 62: newsObject.newsTypeName = "活动"; break; } newsObject.xmlUrl = newsObject.xmlUrl.replace("{0}", newsType); loadNews(newsObject); } function HuoDong() { var href = location.search; var findStr = "newsTypeID"; var beginIndex = href.indexOf(findStr) + findStr.length + 1; var newsType = href.substr(beginIndex) ? href.substr(beginIndex) : 62; var newsObject = { xmlUrl: "../xml/GameNews_{0}.xml", newsType: newsType, newsTypeName: "综合", newsFormat: "<li><span class='time_news'>{0}</span><a href='javascript:;'>[{1}]</a> <a href='content.aspx?newsId={2}' target='_blank'>{3}</a></li>", pageIndex: 1, pageSize: 10 }; switch (parseInt(newsType)) { case 79: newsObject.newsTypeName = "综合"; break; case 77: newsObject.newsTypeName = "新闻"; break; case 76: newsObject.newsTypeName = "公告"; break; case 62: newsObject.newsTypeName = "活动"; break; } newsObject.xmlUrl = newsObject.xmlUrl.replace("{0}", newsType); loadNews(newsObject); } function loadNews(newsObject) { $.get(newsObject.xmlUrl, function (xml) { var news = $.xml2json(xml).news; if ((!news) || news.length <= 0) { $(".list_news").empty().html("<p class='empty'>暂无内容!</p>"); $(".area_page").empty(); return false; } if (news.length == undefined) { news.length = 1; } var sumPages; var temp = parseInt(news.length / newsObject.pageSize, 10); var rest = news.length % newsObject.pageSize; if (rest == 0) { sumPages = temp; } else { sumPages = temp + 1; } var pageObject = { sumPage: sumPages, currPage: newsObject.pageIndex } if (newsObject.pageIndex == sumPages) { sumPages = temp + 1; } setPagerConfig(pageObject); var htmlContents = ""; var newsType = ""; if (news.length == 1) { var newsDateTime = news.date.substr(0, 10); var newsTitle = news.title; newsType = getCmsCategory(news.typename); //显示格式为yy-mm-dd var arr = newsDateTime.split('/'); if (arr[0] < 10) { arr[0] = 0 + arr[0]; } if (arr[1] < 10) { arr[1] = 0 + arr[1]; } newsDateTime = arr[2] + '-' + arr[0] + '-' + arr[1]; htmlContents += newsObject.newsFormat.replace("{0}", newsDateTime) .replace("{1}", newsType) .replace("{2}", news.id) .replace("{3}", newsTitle.length > 22 ? newsTitle.substr(0, 22) : newsTitle); } else { var beginIndex = (newsObject.pageIndex - 1) * newsObject.pageSize; var endIndex = (newsObject.pageIndex == sumPages && rest < newsObject.pageSize) ? (beginIndex + rest) : (beginIndex + newsObject.pageSize); for (var i = beginIndex; i < endIndex; i++) { var newsRow = news[i]; var newsDateTime = newsRow.date.substr(0, newsRow.date.indexOf(" ")); //显示格式为yy-mm-dd var arr = newsDateTime.split('/'); if (arr[0] < 10) { arr[0] = 0 + arr[0]; } if (arr[1] < 10) { arr[1] = 0 + arr[1]; } newsDateTime = arr[2] + '-' + arr[0] + '-' + arr[1]; var newsTitle = newsRow.title; newsType = getCmsCategory(newsRow.typename); htmlContents += newsObject.newsFormat.replace("{0}", newsDateTime) .replace("{1}", newsType) .replace("{2}", newsRow.id) .replace("{3}", newsTitle.length > 22 ? newsTitle.substr(0, 22) : newsTitle); } } if (newsObject.newsType == 79) { $("#Comprehensive").empty().html(htmlContents); } else if (newsObject.newsType == 77) { $("#News").empty().html(htmlContents); } else if (newsObject.newsType == 76) { $("#Notice").empty().html(htmlContents); } else if (newsObject.newsType == 62) { $("#Activity").empty().html(htmlContents); } }); } // 分页设置 function setPagerConfig(pageObject) { var pageObjectDefault = { sumPage: 1, currPage: 1 } $.extend(pageObjectDefault, pageObject); var tempcurrP = parseInt(pageObjectDefault.currPage, 10); var tempSumP = parseInt(pageObjectDefault.sumPage, 10); var pageNumDivHtml = ""; var pagePre = "<a id='pagePre' title='上一页' onclick='changePage(" + (tempcurrP - 1) + ")' class='prev'></a>"; var pageNxt = "<a id='pageNxt' title='下一页' onclick='changePage(" + (tempcurrP + 1) + ")' class='next'></a>"; var pageNumBtn = ""; if (tempcurrP == 1) { pagePre = "<a id='pagePre' title='上一页' class='prev'></a>"; } if (tempcurrP == tempSumP) { pageNxt = "<a id='pageNxt' title='下一页' class='next'></a>"; } for (var i = 1; i <= tempSumP; i++) { if (i == tempcurrP) { pageNumBtn += "<span class='num_page'> " + tempcurrP + " / " + tempSumP + "</span>"; } //else { // pageNumBtn += "<span class='num_page'></span>"; //} } pageNumDivHtml = pagePre + pageNumBtn + pageNxt; $(".area_page").empty().html(pageNumDivHtml); } //点击分页按钮事件 function changePage(pageIndex) { var newsType = ""; var newsTypeName = ""; var liCollection = $(".menu_con_1").find("a"); for (var i = 0; i < liCollection.length; i++) { if (!$(liCollection[i]).attr("class") == "hover png_bg") { newsType = liCollection[i].id; newsTypeName = $(liCollection[i]).html(); } } var newsObject = { xmlUrl: "../xml/GameNews_{0}.xml", newsType: newsType, newsTypeName: newsTypeName, pageIndex: pageIndex }; newsObject.xmlUrl = newsObject.xmlUrl.replace("{0}", newsType); loadNews(newsObject); } $(function () { ZongHe(); NewsList(); GongGao(); HuoDong(); });
你这个分页类似于是在内存中进行分页,给你一点java内存分页的方式,看对你有没有一点帮助。
/**
* 解决内存分页问题
* @param sourcepage 需要分页的数组
* @param pageindex 当前页从1开始
* @param pageSize 每页显示条数
* @return 分页后的数据
* @throws Exception
*/
private final <E extends Object> List<E> MergePagingList(List<E> sourceList,int pageindex,int pageSize) throws Exception{
int sindex = pageindex==1?0:(pageindex-1)*pageSize;
int send = pageindex*pageSize;
if(send>sourceList.size()){
send = sourceList.size();
}
List<E> trgetList = sourceList.subList(sindex, send);
return trgetList;
}