关于分页的问题!

a57397872 2010-05-14 09:05:31
公司网站和其他网站合作他们给了份接口文档!我按照他们的文档解析了他们提供的XML.代码如下:
List<House> houselist = new List<House>();
XmlDocument doc = new XmlDocument();
doc.Load("http://sh.fangjia.com/api/house-outer.html?username=xxxxx&password=xxxxx&apiKey=xxxxxx&websiteId=80&pageSize=10pageNum=5");
XmlNodeList sectionNodeList = doc.GetElementsByTagName("house");
int n = sectionNodeList.Count;
for (int i = 0; i < n; i++)
{
House house = new House();
house.id = long.Parse(sectionNodeList[i].SelectSingleNode("id").InnerText);
house.url = sectionNodeList[i].SelectSingleNode("url").InnerText;
house.room = Convert.ToInt32(sectionNodeList[i].SelectSingleNode("room").InnerText);
house.hall = Convert.ToInt32(sectionNodeList[i].SelectSingleNode("hall").InnerText);
house.toilet = Convert.ToInt32(sectionNodeList[i].SelectSingleNode("toilet").InnerText);
house.area = Convert.ToDouble(sectionNodeList[i].SelectSingleNode("area").InnerText);
house.fitment = sectionNodeList[i].SelectSingleNode("fitment").InnerText;
house.houseFloor = Convert.ToInt32(sectionNodeList[i].SelectSingleNode("houseFloor").InnerText);
house.estateType = sectionNodeList[i].SelectSingleNode("estateType").InnerText;
house.houseHight = Convert.ToInt32(sectionNodeList[i].SelectSingleNode("houseHight").InnerText);
house.title = sectionNodeList[i].SelectSingleNode("title").InnerText;
house.agentName = sectionNodeList[i].SelectSingleNode("agentName").InnerText;
house.districtName = sectionNodeList[i].SelectSingleNode("districtName").InnerText;
house.districtId = long.Parse(sectionNodeList[i].SelectSingleNode("districtId").InnerText);
house.address = sectionNodeList[i].SelectSingleNode("address").InnerText;
house.tel = sectionNodeList[i].SelectSingleNode("tel").InnerText;
houselist.Add(house);
}
return houselist;
现在数据取出来了但是我还想做下分页请问应该怎么来做?参数如下:
那个接口可以查出5000千条数据
pageSize: 每页条数(默认为10)
pageNum:页数

地址:http://sh.fangjia.com/api/house-outer.html?username=xxxxx&password=xxxxx&apiKey=xxxxxx&websiteId=80&pageSize=10pageNum=5
分页最好是这样的 1 2 3 4 5 6........
知道帮忙提供下代码谢谢!.NET新人在这谢过各位了!!!
...全文
113 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
kk297173176 2010-05-14
  • 打赏
  • 举报
回复
分页控件
  • 打赏
  • 举报
回复
我做过
123456 这种翻页的

只要总数量就能知道页数, 下面放个lable 用for循环的方式 给lable 值
比如一共5页
for(i=1;i<6;i++)
{
lable.text=<a href='页面?page='"+i+"></a>;
}
这样就出现你要的情况, 然后在根据传到本页面的数判断是第几页, 我就这么做的, 不知道对你有没有帮助
jianshao810 2010-05-14
  • 打赏
  • 举报
回复
jq分页控件,或者aspnetpager
aluogang 2010-05-14
  • 打赏
  • 举报
回复
盖茨都成新人了哈
zhoulingsmile 2010-05-14
  • 打赏
  • 举报
回复
麻烦。。。帮你顶哈。。加油。。
赵王爷 2010-05-14
  • 打赏
  • 举报
回复
mark
a57397872 2010-05-14
  • 打赏
  • 举报
回复

看看吧主要这死人东西不是从我本地数据库取出来的烦啊!!!!
jack15850798154 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 webdiyer 的回复:]
试试 AspNetPager: http://www.webdiyer.com/controls/aspnetpager
[/Quote]
好东西学习。。
jack15850798154 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a57397872 的回复:]
我说最好是 下面显示1 2 3 4 5 6 7 8 9.........这样的翻页
[/Quote]
我上面发给你的方法可以实现自己研究。。。
webdiyer 2010-05-14
  • 打赏
  • 举报
回复
jack15850798154 2010-05-14
  • 打赏
  • 举报
回复
给你一个方法自己研究研究吧。。
/// <summary>
/// 功能名称:PageList
/// 功能描述:用于分页,可公用
/// </summary>
/// <param name="RecordCount">记录总条数</param>
/// <param name="RcPerPage">每页数</param>
/// <param name="page">显示第几页</param>
/// <param name="pageLinkNum">导航栏上有几个页面</param>
public string AjaxPageList(int RecordCount, int page, int RcPerPage, int pageLinkNum)
{
if (RecordCount <= RcPerPage)
{
return "";
}
StringBuilder pageList = new StringBuilder("");
int p, i;
int pagecount;
int pageCount;//共分为几页

pageCount = System.Convert.ToInt32(RecordCount / RcPerPage);
if (RecordCount % RcPerPage > 0)
{
pageCount++;
}
pagecount = pageCount;//总页数

if (page < 1)
{
page = 1;
}
if (pagecount < 1)
{
pagecount = 1;
}

p = page / pageLinkNum;
p = System.Convert.ToInt32(p);

if (page % pageLinkNum > 0) //页签个数
{
p = p + 1;
}
p = (p - 1) * pageLinkNum + 1;//本页签开始数
i = p + (pageLinkNum - 1); //本页结束数
if (i > pagecount)//本页结束数
{
i = pagecount;
}

if (p > pageLinkNum)//如果本页签开始数大于每个页签的页面个数 指向上一个页签的最后一页<<
{
pageList.Append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"right\"><tr><td><a href='javascript:void(0);' onclick='pagelist(" + (p - 1) + ")'><img class=\"fl\" src=\"/Images/Apple/Comm/pbb.gif\" width=\"15\" height=\"15\" border=\"0\" /></a>");
}
else //否则不指向上一个页签的最后一页<<
{
pageList.Append("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"right\"><tr><td><img class=\"fl\" src=\"/Images/Apple/Comm/pbb.gif\" width=\"15\" height=\"15\" border=\"0\" />");
}

if (page == 1)//如果当前页是第一页,则返回上一页的按钮<,则此按钮失效
{
pageList.Append("<img class=\"fl\" src=\"/Images/Apple/Comm/pb.gif\" width=\"15\" height=\"15\" border=\"0\" /> </td><td>");
}
else //如果当前页不是第一页,则返回上一页的按钮<,则此按钮链接有效
{
pageList.Append(" <a href='javascript:void(0);' onclick='pagelist(" + (page - 1) + ")'><img class=\"fl\" src=\"/Images/Apple/Comm/pb.gif\" width=\"15\" height=\"15\" border=\"0\" /></a> </td><td>");
}

while (p < i)//自本页签的第一页到本页签最后一页前的所有页
{
if (p == page) //如果是当前页,高亮显示当前页,链接失效
{
pageList.Append("<font class='pagelistnow'>" + p + "</font> | ");
}
else //否则,不高亮显示,链接有效
{
pageList.Append("<a href='javascript:void(0);' class=\"gray\" onclick='pagelist(" + p + ")'>" + p + "</a> | ");
}

p = p + 1;
}
//本页签的最后一页
if (p == page)
{
pageList.Append("<font class='pagelistnow'>" + p + "</font> ");
}
else
{
pageList.Append("<a href='javascript:void(0);' class=\"gray\" onclick='pagelist(" + p + ")'>" + p + "</a> ");

}
// p = p - 1;


if ((pagecount - page) == 0) //如果总页数等于当前页数,向后翻页>按钮失效
{
pageList.Append("</td><td><img class=\"fl\" src=\"/Images/Apple/Comm/pn.gif\" width=\"15\" height=\"15\" border=\"0\" />");
}
else //如果总页数不等于当前页数,向后翻页按钮生效
{
pageList.Append("</td><td><a href='javascript:void(0);' onclick='pagelist(" + (page + 1) + ")'><img class=\"fl\" src=\"/Images/Apple/Comm/pn.gif\" width=\"15\" height=\"15\" border=\"0\" /></a>");
}

if (p < pagecount) //如果本页签的最后一页小于总页数,>>进入下一个页签的第一页
{
pageList.Append("<a href='javascript:void(0);' onclick='pagelist(" + (p + 1) + ")'><img class=\"fl\" src=\"/Images/Apple/Comm/pnn.gif\" width=\"15\" height=\"15\" border=\"0\" /></a></td></tr></table>");
}
else//如果本页签的最后一页等于总页数,《失效
{
pageList.Append("<img class=\"fl\" src=\"/Images/Apple/Comm/pnn.gif\" width=\"15\" height=\"15\" border=\"0\" /></td></tr></table>");
}

pageList.Append("");
return pageList.ToString();
}
jack15850798154 2010-05-14
  • 打赏
  • 举报
回复
我有一个以前用js 做的。你有QQ吗?我发给你看看。对你有帮助吗?
a57397872 2010-05-14
  • 打赏
  • 举报
回复

我说最好是 下面显示1 2 3 4 5 6 7 8 9.........这样的翻页
miao0099 2010-05-14
  • 打赏
  • 举报
回复
<td style="width: 150px">
<asp:Button ID="btnFirst" runat="server" OnClick="Page_Click" Text="首 页" Width="71px" />
<asp:Button ID="btnPrevious" runat="server" Height="24px" OnClick="Page_Click" Text="上一页"
Width="71px" /></td>
<td colspan="2">
共<asp:Label ID="lblRecorderCount" runat="server" ForeColor="Lime"></asp:Label>条记录

<asp:Label ID="lblPageIndex" runat="server" ForeColor="Red"></asp:Label>
/<asp:Label ID="lblPageCount" runat="server" ForeColor="Lime"></asp:Label>页 每页<asp:Label
ID="lblPageSize" runat="server" ForeColor="Lime"></asp:Label>  条 转到<asp:DropDownList
ID="dllPage" runat="server" AutoPostBack="True" Font-Size="12px" OnSelectedIndexChanged="dllPage_SelectedIndexChanged"
Width="48px">
</asp:DropDownList>页</td>
<td style="width: 150px">
<asp:Button ID="btnNext" runat="server" Height="24px" OnClick="Page_Click" Text="下一页"
Width="71px" />
<asp:Button ID="btnLast" runat="server" Height="24px" OnClick="Page_Click" Text="最后一页"
Width="71px" /></td>
miao0099 2010-05-14
  • 打赏
  • 举报
回复
    MyProject.BLL.news newsBll = new MyProject.BLL.news();
//MyProject.Model.news newsMold = new MyProject.Model.news();
int PageSize = 5; //每页5条记录
int PageIndex = 1; //第一页

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["PageIndex"] = PageIndex; //页的索引
ViewState["PageCount"] = newsBll.Count() / PageSize; //总共页数
PageState();
DataNews();
}
}

protected void DataNews()
{
ViewState["PageCount"] = newsBll.Count() / PageSize;
PageIndex = (int)ViewState["PageIndex"];
this.lblPageCount.Text = ViewState["PageCount"].ToString();
this.lblPageIndex.Text = PageIndex.ToString();
this.lblPageSize.Text = PageSize.ToString();
this.lblRecorderCount.Text = newsBll.Count().ToString();
this.dllPage.Items.Clear(); //清除所有列表
for (int i = 0; i < (int)ViewState["PageCount"]; i++) //重新添加列表
{
int page = i + 1;
ListItem list = new ListItem(page.ToString(), page.ToString());
dllPage.Items.Add(list);
}

//数据绑定
DataSet dsNews = newsBll.GetList(PageSize, PageIndex, "");
this.dlstTest.DataSource = dsNews.Tables[0].DefaultView;
this.DataBind();
}

//翻页
protected void Page_Click(object sender, EventArgs e)
{
Button btnPage = (Button)sender;
switch (btnPage.ID)
{
case "btnFirst":
ViewState["PageIndex"] = 1;
break;
case "btnPrevious":
ViewState["PageIndex"] = (int)ViewState["PageIndex"] - 1;
break;
case "btnNext":
ViewState["PageIndex"] = (int)ViewState["PageIndex"] + 1;
break;
case "btnLast":
ViewState["PageIndex"] = ViewState["PageCount"];
break;
}
PageState();
DataNews();
}

//判断翻页的状态
protected void PageState()
{
this.btnFirst.Enabled = true;
this.btnPrevious.Enabled = true;
this.btnLast.Enabled = true;
this.btnNext.Enabled = true;
if ((int)ViewState["PageIndex"] == 1)
{
this.btnFirst.Enabled = false;
this.btnPrevious.Enabled = false;
}
if ((int)ViewState["PageIndex"] == (int)ViewState["PageCount"])
{
this.btnLast.Enabled = false;
this.btnNext.Enabled = false;
}
}

//选择第几页
protected void dllPage_SelectedIndexChanged(object sender, EventArgs e)
{
ViewState["PageIndex"] = Convert.ToInt32(dllPage.SelectedValue);
PageIndex = (int)ViewState["PageIndex"];
this.lblPageIndex.Text = PageIndex.ToString();
DataSet dsNews = newsBll.GetList(PageSize, PageIndex, "");
this.dlstTest.DataSource = dsNews.Tables[0].DefaultView;
this.DataBind();
PageState();
}

这个是三层的不知道有没有用 我也菜鸟
a57397872 2010-05-14
  • 打赏
  • 举报
回复
-_-!没人知道吗
a57397872 2010-05-14
  • 打赏
  • 举报
回复
大哥们快来帮帮忙啊

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧