求助:asp.net StringBuilder实现下拉分页

ningmengyu888 2011-10-12 08:52:27
最近偶做的项目需要用到下拉分页,但是必须是在控件里面完成功能,下面的代码部分,首页,上一页,下一页,末页 功能都已实现,如果我要在后面继续添加一个下拉列表框进行分页,该如何实现:(如图)



StringBuilder OutPut = new StringBuilder();

OutPut.Insert(0, string.Format("<a href='" + Main + "'>首页</a><a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage - 1).ToString() + " '>上一页</a>"));

OutPut.Append("<a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage + 1).ToString() + "'>下一页</a>");

OutPut.Append("<a href='" + path + "&page=" + PageCount + "'>" + "末页</a>");

下面注释的这段代码:主要是 select 的 onchange 起不到作用,选择下拉没反映
//OutPut.Append("<select id=select1 onchange='javascript:window.location=msg.aspx?t=none&key=none&page=2'>");
//for (int i = LeftNum; i <= RightNum; i++)
//{
// OutPut.Append("<option value=" + i.ToString() + ">" + i.ToString() + "/" + PageCount + "</option>");
//}
//OutPut.Append("</select>");
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CalvinR 2011-10-12
  • 打赏
  • 举报
回复
其实这样 做真的有点麻烦
建议换种方式吧
一直在冬眠 2011-10-12
  • 打赏
  • 举报
回复
你可以把总页数表示出来,然后用TextBox框跳转到第多少页不是一样的功能吗,这个写简单一点把。
快乐的小二兔 2011-10-12
  • 打赏
  • 举报
回复
亲 为什么不用分页控件呢????
其实怎么做都行 用url分页吧
下拉列表的点击事件 把下拉列表的value给url 重新加载页面就可以了
MSDNXGH 2011-10-12
  • 打赏
  • 举报
回复
aspnetPaper分页控件
ningmengyu888 2011-10-12
  • 打赏
  • 举报
回复
这是我全部的代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DBUtilityZy;
using System.Text;
public partial class paging_pagingzcj : System.Web.UI.UserControl
{
private int totalCountRecord;//总记录数
public int TotalCountRecord
{
get { return totalCountRecord; }
set { totalCountRecord = value; }
}
private int pageSize; //每页显示的条数
public int PageSize
{
get { return pageSize; }
set { pageSize = value; }
}
private int currentPage; //当前页
public int CurrentPage
{
get { return currentPage; }
set { currentPage = value; }
}
private string main;//主页面
public string Main
{
get { return main; }
set { main = value; }
}
private int step;//阶梯
public int Step
{
get { return step; }
set { step = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.Literal1.Text = BuildPagers(TotalCountRecord, Main);
}
public DataSet gouzao(int PageSize, int CurrentPage, string Main, int Step, string tName, string pkField, string queryFields, string sqlWhere, string sqlOrder)
{
if (sqlWhere != "")
{
this.TotalCountRecord = (int)(DBHelper.ExecuteScalar("select count(*) from " + tName + " where " + sqlWhere));
}
else
{
this.TotalCountRecord = (int)(DBHelper.ExecuteScalar("select count(*) from " + tName));
}
this.PageSize = PageSize;
this.CurrentPage = CurrentPage;
this.Main = Main;
this.Step = Step;

return GetList(tName, pkField, queryFields, sqlWhere, sqlOrder);
}
public DataSet GetList(string tName, string pkField, string queryFields, string sqlWhere, string sqlOrder)
{
if (CurrentPage < 1)
{
CurrentPage = 1;
}
if (pageSize < 1)
{
pageSize = 1;
}
int selectFrom = (CurrentPage - 1) * pageSize;

StringBuilder buffer = new StringBuilder();
buffer.Append("SELECT TOP " + pageSize + " " + queryFields);
buffer.Append(" FROM " + tName);
buffer.Append(" WHERE (" + pkField + " NOT IN (");
if (sqlWhere == null || sqlWhere != null && sqlWhere == string.Empty)
{
buffer.Append("SELECT TOP " + selectFrom + " " + pkField + " FROM " + tName + ")) ");
}
else
{
if (sqlOrder != null && sqlOrder != string.Empty)
buffer.Append("SELECT TOP " + selectFrom + " " + pkField + " FROM " + tName + " where " + sqlWhere + " " + sqlOrder + " ) and " + sqlWhere + ") ");
else
buffer.Append("SELECT TOP " + selectFrom + " " + pkField + " FROM " + tName + " where " + sqlWhere + " ) and " + sqlWhere + ") ");
}
if (sqlOrder != null && sqlOrder != string.Empty)
{
buffer.Append(sqlOrder);
}
string strQuery = buffer.ToString();
DataSet ds = DBHelper.GetDataSet(strQuery);
return ds;
}
public string BuildPagers(int TotalCountRecord, string path)
{
int LeftNum = 0;
int RightNum = 0;
string PageUrl = Request.FilePath;
int PageCount = (int)Math.Ceiling((double)(TotalCountRecord) / PageSize);
if (CurrentPage - Step < 1)
{
LeftNum = 1;
}
else
{
LeftNum = CurrentPage - Step;
}

if (CurrentPage + Step > PageCount)
{
RightNum = PageCount;
}
else
{
RightNum = CurrentPage + Step;
}
StringBuilder OutPut = new StringBuilder();

//for (int i = LeftNum; i <= RightNum; i++)
//{
// if (i == CurrentPage)
// {
// OutPut.Append("<span class=\"current\">");
// OutPut.Append(i.ToString());
// OutPut.Append("</span>");
// }
// else
// {
// OutPut.Append("<a style='' href='");
// OutPut.Append(path + "&page=" + i.ToString() + "");
// OutPut.Append("'>");
// OutPut.Append(i.ToString());
// OutPut.Append("</a>");
// }
//}


if (CurrentPage == 1)
{
OutPut.Insert(0, string.Format("<a href='" + Main + "'>首页</a><a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage).ToString() + " '>上一页</a>"));

OutPut.Append("<a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage + 1).ToString() + "'>下一页</a>");

OutPut.Append("<a href='" + path + "&page=" + PageCount + "'>" + "末页</a>");
}
else if (CurrentPage >= PageCount)
{
OutPut.Insert(0, string.Format("<a href='" + Main + "'>首页</a> <a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage - 1).ToString() + " '>上一页</a>"));

OutPut.Append("<a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage).ToString() + "'>下一页</a>");

OutPut.Append("<a href='" + path + "&page=" + PageCount + "'>" + "末页</a>");

}
else
{
OutPut.Insert(0, string.Format("<a href='" + Main + "'>首页</a><a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage - 1).ToString() + " '>上一页</a>"));

OutPut.Append("<a style=\"_Padding-bottom:0px; \" href='" + path + "&page=" + (CurrentPage + 1).ToString() + "'>下一页</a>");

OutPut.Append("<a href='" + path + "&page=" + PageCount + "'>" + "末页</a>");
}

//OutPut.Append("<select id=select1 onchange='javascript:window.location=msg.aspx?t=none&key=none&page=this.options[this.selectedIndex].value '>");
//for (int i = LeftNum; i <= RightNum; i++)
//{
// OutPut.Append("<option value=" + i.ToString() + ">" + i.ToString() + "/" + PageCount + "</option>");
//}
//OutPut.Append("</select>");

return OutPut.ToString();
}
}
CalvinR 2011-10-12
  • 打赏
  • 举报
回复
代码太少了吧
看不出什么东西啊

62,254

社区成员

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

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

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

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