AspNetPager分页问题

woshimaikou 2011-05-04 11:29:03
页面默认显示所有数据并分页,上方是搜索条(回发后的数据),点击搜索后显示结果并分页。返回的数据是IList的!
数据都能获取到 如何用AspNetPager分页??
...全文
247 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
段传涛 2011-05-04
  • 打赏
  • 举报
回复
public void dlBind()
{
int curpage = Convert.ToInt32(this.labPage.Text);
PagedDataSource ps = new PagedDataSource();
sqlconn = myCon.getCon();
sqlconn.Open();
string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);
DataSet ds = new DataSet();
MyAdapter.Fill(ds, "tb_Card");
ps.DataSource = ds.Tables["tb_Card"].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 2; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
this.lnkbtnUp.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnBack.Enabled = true;
this.lnkbtnOne.Enabled = true;
if (curpage == 1)
{
this.lnkbtnOne.Enabled = false;//不显示第一页按钮
this.lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
this.lnkbtnNext.Enabled = false;//不显示下一页
this.lnkbtnBack.Enabled = false;//不显示最后一页
}
this.labBackPage.Text = Convert.ToString(ps.PageCount);
this.dlContent.DataSource = ps;
this.dlContent.DataKeyField = "CardID";
this.dlContent.DataBind();
}
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
this.labPage.Text = "1";
this.dlBind();
}
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
this.dlBind();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
this.dlBind();
}
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
this.labPage.Text = this.labBackPage.Text;
this.dlBind();
}
scy_xj 2011-05-04
  • 打赏
  • 举报
回复
asp与asp.net的区别
wlf535944903 2011-05-04
  • 打赏
  • 举报
回复

protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
gvNewsDataBind(AspNetPager1.CurrentPageIndex);
}

/// <summary>
/// 高效绑定
/// </summary>
/// <param name="index">第几页</param>
private void gvNewsDataBind(int index)
{
int pageSize = 15;//页面内容数
int pageIndex = index;//获取当前页数
AspNetPager1.PageSize = pageSize;//设置页面内容数
string where = ViewState["QureyWhere"].ToString();//获取条件,
int outCounts = 1;
int pageCount = 1;
IList<NewsInfo> list = NewsInfoBLL.GetInstance().GetNewsPage("NewsInfo", "*", "NewsId", where, "UpdateTime desc,NewsId asc", 3, 0, pageSize, pageIndex, ref outCounts, ref pageCount);
GvNewsList.DataSource = list;
GvNewsList.DataKeyNames = new string[] { "NewsId" };
GvNewsList.DataBind();
AspNetPager1.RecordCount = outCounts;
}

菠萝帅帅的 2011-05-04
  • 打赏
  • 举报
回复
首先定义 PageIndex PageSize Recocount(记录数)然后算出页数
最好在sql语句里面实现每次翻页的记录数
RowNumber()
wlf535944903 2011-05-04
  • 打赏
  • 举报
回复
bleach001 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 woshimaikou 的回复:]
我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。
[/Quote]
对于所有分页,跳转也就没问题的,如果是查询结果分页,就先把查询结果存起来,点击分页执行的是AspNetPager1_PageChanged事件,
判断一下你存入的查询结果是否为空,不为空就
 if (Session["dataBook"] != null)
{
DataTable dataBook = Session["dataBook"] as DataTable;
AspNetPager1.RecordCount = dataBook.Rows.Count;
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dataBook.DefaultView;
pds.AllowPaging = true;
AspNetPager1.PageSize = 10;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;
this.repListTickets.DataSource = pds;
this.repListTickets.DataBind();
}else
{
全部数据;
}

把查询结果绑定, 每次跳转就不会出现重新绑定全部的数据了
woshimaikou 2011-05-04
  • 打赏
  • 举报
回复
已解决,
woshimaikou 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wlf535944903 的回复:]
引用 6 楼 woshimaikou 的回复:

我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。


我给你发的那个就是啊 ViewState["QureyWhere"] 把搜索条件给他 就行
[/Quote]

我用的是用户控件(SearchBar) 其中声明了onSearch事件,我在列表页注册了SearchBar_onSearch方法
void SearchBar_onSearch(object sender, SearchEventArg arg)
{
IList<SellData> dataSourc = sellDataBll.GetList(arg.SearchEntity);
bindSellDataRepeat(dataSourc);
}


arg中是点击“搜索”后接收到的搜索条件。
如何在点击分页按钮时得到sellDataBll.GetList(arg.SearchEntity)这个数据源。
yue547283947 2011-05-04
  • 打赏
  • 举报
回复
http://download.csdn.net/source/3229636

这是我上传的示例 比较简单,你可以看看。

IList和DataSet 一样绑定。
pager.DataSource = list;list可以是IList,也可以是DataSet
pager.DataBind();


wlf535944903 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 woshimaikou 的回复:]

我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。
[/Quote]

我给你发的那个就是啊 ViewState["QureyWhere"] 把搜索条件给他 就行
woshimaikou 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxr0323 的回复:]
引用 6 楼 woshimaikou 的回复:

我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。

把list设置全局变量

搜索的时候把数据源变为搜索的。。

为空的时候 吧数据源变为全部的。

不知道能不能理解我的意思。
[/Quote]

现在默认全部数据可以实现分页,但点击搜索后,默认第一页是现实搜索结果的数据,但点击其他页数的时候就会显示全部数据的分页。也就是说在点击分页控件中的 页数字时 如何捕获搜索条件(搜索是用户控件)回发就收的搜索条件。
woshimaikou 2011-05-04
  • 打赏
  • 举报
回复
搜索条是个用户控件,也就是说如何知道是执行的搜索结果分页
子夜__ 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 woshimaikou 的回复:]

我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。
[/Quote]
把list设置全局变量

搜索的时候把数据源变为搜索的。。

为空的时候 吧数据源变为全部的。

不知道能不能理解我的意思。
woshimaikou 2011-05-04
  • 打赏
  • 举报
回复
我想问的是 在AspNetPager1_PageChanged事件中如何知道 是搜索结果的数据分页 还是默认全部数据分页。

62,072

社区成员

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

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

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

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