AspNetPage与Datalist实现分页的小问题!

xjl1314521wxw 2010-04-08 10:38:56
我用Datalist进行显示数据,用AspNetPage实现分页,但现在的问题是,我设置了AspNetPage的pagesize属性,但看不到效果,还是一页显示全部数据,别外,怎么把AspNetPage和datalist控件联系起来呢?
AspNetPage的分页存储过程是用来做什么的?
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2010-04-08
  • 打赏
  • 举报
回复
不需要关联,只需要在PageChanged事件处理程序中获取当前页数据并绑定到DataList上就行了,注意是当前页数据,分页控件和数据没有直接关系,不会对你的数据进行分页,所以获取数据时需要自己实现分页,看一下示例就懂了,很简单的,这样做可能使用麻烦一些,但灵活性高,因为和数据没有任何关系,所以为什么数据分页都可以。
xnhsdp 2010-04-08
  • 打赏
  • 举报
回复
用PageDataSource,通过PageDataSource可以把Aspnetpager和DataList联系起来
lester19872007 2010-04-08
  • 打赏
  • 举报
回复
一。简介
AspNetPager将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页。



二。使用说明
要使用 AspNetPager 分页控件,必须指定它的 RecordCount 属性,指定并编写PageChanged 事件的处理程序。 RecordCount 属性指定要分页的所有数据的总项数,若未指定该值或该值小于等于 PageSize ,则AspNetPager控件不会显示任何内容。若未指定并编写 PageChanged 事件处理程序,则当用户点击页导航元素或在页索引文本框中手式输入页索引并提交时AspNetPager不会跳转到指定的页。 AspNetPager控件在它的 PageChanged 事件处理程序中将传递事件数据的 PageChangedEventArgs 的 NewPageIndex值赋给 AspNetPager的 CurrentPageIndex属性,然后重新将新的数据与数据显示控件绑定。

RecordCount :当页面第一次加载时,应以编程方式将数据表中所有要分页的记录的总数赋予该属性。AspNetPager根据要分页的所有数据的总项数和 PageSize 属性来计算显示所有数据需要的总页数,即 PageCount的值。

PageSize :该值获取或设置数据呈现控件每次要显示数据表中的的数据的项数,AspNetPager根据该值和 RecordCount 来计算显示所有数据需要的总页数,即 PageCount的值。



三具体操作
这里是针对最新的AspNetPager 7.1 版本,其余版本类似。

1.在项目中添加AspNetPager.dll的引用;



2.页面头部添加

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>




3.在需要分页导航的地方添加

<webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" BackColor="#f8f8f8" PageSize="3" CustomInfoSectionWidth="240px" FirstPageText='<font face="webdings" style="font-size:11pt;color:#111111">9</font>' LastPageText='<font face="webdings" style="font-size:11pt;color:#111111">:</font>' LayoutType="Div" NextPageText='<font face="webdings" style="font-size:11pt;color:#111111">4</font>' PrevPageText='<font face="webdings" style="font-size:11pt;color:#111111">3</font>'

ShowCustomInfoSection="Left" CustomInfoHTML="第%CurrentPageIndex%页,共%PageCount%页,每页%PageSize%条" PageIndexBoxStyle="width:19px" ShowPageIndexBox="Auto" NumericButtonCount="10" ShowBoxThreshold="3" Width="800px" NumericButtonTextFormatString="[{0}]"/>

属性说明:

CustomInfoSectionWidth="240px"

指定用户信息的宽度,也可设为百分比

FirstPageText,PrevPageText,NextPageText,LastPageText

分别为设定首页,前页,下页,末页导航按钮要显示的文字,这里使用的是webdings字体图片。

ShowCustomInfoSection="Left"

设定用户信息显示在导航按钮左右方向,或者不显示,这里设为左边显示。

CustomInfoHTML

设定用户信息内容

ShowCustomInfoSection="Auto"

设定页面导航框是否显示,Auto为默认的选项,当页面数大于ShowBoxThreshold设定的数值时才显示页面导航框,也可可以设为总显示与不显示。页面导航框用两种形式,默认为输入文本框,可以设置PageIndexBoxType="DropDownList"而使用下拉框方式。

暖枫无敌 2010-04-08
  • 打赏
  • 举报
回复
一句代码都不写,你就想实现数据绑定和分页啊!
暖枫无敌 2010-04-08
  • 打赏
  • 举报
回复
恩private void bindData()
{
v_mb_proj_bb_prov1 proj2 = new v_mb_proj_bb_prov1();
DataSet ds_proj2;
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
string strSQL = string.Empty;
string strSQL2 = string.Empty;
ds_proj2 = (DataSet)proj2.Select_v_mb_proj_cxforname(xqid, ddl_year.SelectedValue.ToString());
if (xqid == "340000000000")
{
//全省文档
strSQL = "select count(*) from v_mb_proj_cxforname where t3='" + ddl_year.SelectedValue.ToString() + "'and t2 like'" + xqid.Substring(0, 2) + "%'";
strSQL2 = "select * from v_mb_proj_cxforname where t3='" + ddl_year.SelectedValue.ToString() + "' and t2 like'" + xqid.Substring(0, 2) + "%'";
using (SqlCommand cmd = new SqlCommand(strSQL, con))
{
this.AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
}
SqlDataAdapter da = new SqlDataAdapter(strSQL2, con);
da.Fill(ds_proj2, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "tab");
GridView1.DataSource = ds_proj2.Tables["tab"];
GridView1.DataBind();
}
else
{
//市县级文档
//全省文档
strSQL = "select count(*) from v_mb_proj_cxforname where t3='" + ddl_year.SelectedValue.ToString() + "'and t2 like'" + xqid + "%'";
strSQL2 = "select * from v_mb_proj_cxforname where t3='" + ddl_year.SelectedValue.ToString() + "' and t2 like'" + xqid + "%'";
using (SqlCommand cmd = new SqlCommand(strSQL, con))
{
this.AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
}
SqlDataAdapter da = new SqlDataAdapter(strSQL2, con);
da.Fill(ds_proj2, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "tab");
GridView1.DataSource = ds_proj2.Tables["tab"];
GridView1.DataBind();
}
}
}

------------------------------------------------------------------------------------
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
{
this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;
if (this.TextBox_input.Text.Trim() == "")
{
bindData();
}
else
{
bindData(xqid, this.TextBox_input.Text.Trim());
}
}

62,041

社区成员

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

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

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

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