AspNetPager搜索分页问题,急!`````

a511900703 2010-10-28 09:57:02
const string vsKey = "searchCriteria";
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
DataBinder(string.Empty);
}
}

private void DataBinder(string strContext)
{
DataSet dscount = BLL.UserInfoBLL.GetUserCount(strContext);
this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString());
int startIndex = AspNetPager.CurrentPageIndex;
DataView dv = BLL.UserInfoBLL.GetUserCountPage(AspNetPager.PageSize, startIndex, strContext);
PagedDataSource pgs = new PagedDataSource();

pgs.DataSource = dv;
pgs.AllowPaging = true;
pgs.CurrentPageIndex = AspNetPager.CurrentPageIndex - 1;
pgs.PageSize = AspNetPager.PageSize;
this.Repeater.DataSource = pgs;
this.Repeater.DataBind();
}

protected void AspNetPager_PageChanged(object src, EventArgs e)
{
DataBinder((string)ViewState[vsKey]);
}
protected void btnSelect_Click(object sender, EventArgs e)
{
AspNetPager.CurrentPageIndex = 1;
string s = txtSelect.Text.Trim();
ViewState[vsKey] = s;
DataBinder(s);
}

不知道是哪里出问题了。这个分页我弄了2天了,还是不行。这代码,基本上就跟例子上的一样的。不知道为啥我这个不行
大家帮忙看一下。

解决给分!
...全文
370 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
danjiewu 2010-10-29
  • 打赏
  • 举报
回复

const string vsKey = "searchCriteria";
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
ViewState[vsKey]=Request.QueryString["SearchFor"];
DataBinder(Request.QueryString["SearchFor"]);
}
}

private void DataBinder(string strContext)
{
DataSet dscount = BLL.UserInfoBLL.GetUserCount(strContext);
this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString());
int startIndex = AspNetPager.CurrentPageIndex;
DataView dv = BLL.UserInfoBLL.GetUserCountPage(AspNetPager.PageSize, startIndex, strContext);
PagedDataSource pgs = new PagedDataSource();

pgs.DataSource = dv;
pgs.AllowPaging = true;
pgs.CurrentPageIndex = AspNetPager.CurrentPageIndex - 1;
pgs.PageSize = AspNetPager.PageSize;
this.Repeater.DataSource = pgs;
this.Repeater.DataBind();
}

protected void AspNetPager_PageChanged(object src, EventArgs e)
{
DataBinder((string)ViewState[vsKey]);
}
protected void btnSelect_Click(object sender, EventArgs e)
{
string s = txtSelect.Text.Trim();
Response.Redirect(Request.Path+"?SearchFor="+HttpUtility.UrlEncode(s),true);
}


AspNetPager_PageChanged可以去掉,Url方式可能不会触发AspNetPager_PageChanged事件。
kwp_911229 2010-10-28
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
int totalOrders = NewPLManager.GetAllByStu(nid).Count;
AspNetPager1.RecordCount = totalOrders;
this.AspNetPager1.PageSize = 8; // 每页显示X条记录
}



#region 分页显示数据
void bindData()
{
//分页查询方法
int nid = Convert.ToInt32(Request.QueryString["nid"]);
Repeater1.DataSource = (List<NewPL>)NewPLManager.AdminPage(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, nid);
Repeater1.DataBind();//数据绑定
}
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
bindData();
}
#endregion




代码都贴给你了 .. 把一些方法改掉就可以了
hookyzlr 2010-10-28
  • 打赏
  • 举报
回复
AspNetPager.CurrentPageIndex = 1这句话去掉
gz0817 2010-10-28
  • 打赏
  • 举报
回复

AspNetPager1.PageSize = PageSize;
AspNetPager1.RecordCount = recordCount;
AspNetPager1.UrlPaging = true;
AspNetPager1.EnableUrlRewriting = true;
AspNetPager1.UrlRewritePattern = "Itemlist.aspx?pageIndex={0}&key=" + txtKey.Value+
"&ClassId=" + HidClassId.Value +
"&second=" + Hidsecond.Value +
"&AdminId=" + selAdminId.SelectedValue +
"&Shelf=" + ddlShelf.SelectedValue +
"&isend=" + Hidfiled.Value + "";
AspNetPager1.ShowPageIndexBox = Wuqi.Webdiyer.ShowPageIndexBox.Always;
AspNetPager1.PageIndexBoxType = Wuqi.Webdiyer.PageIndexBoxType.TextBox;

danjiewu 2010-10-28
  • 打赏
  • 举报
回复
如果用Url的方式分页,每次都是重新打开页面,没有postback,控件的值和viewstate都会清空。
所以只有2个办法
1是改用postback的方式分页
2如果必须用url的方式,那么必须把需要保持的状态通过url传递,然后在打开页面时解析url得到状态。

你可以看下google怎么分页的
段传涛 2010-10-28
  • 打赏
  • 举报
回复
没有看 你的 代码
参考我的
-------------------------------------
DataCon myCon = new DataCon();
DataOperate sqlBind = new DataOperate();
SqlConnection sqlconn;
protected void Page_Load(object sender, EventArgs e)
{
dlBind();
}
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();
}
nimeide1234567890 2010-10-28
  • 打赏
  • 举报
回复
http://blog.csdn.net/luojianfeng

VS2005+SQL SERVER 2000+AspNetPager1 分页存储
Rock870210 2010-10-28
  • 打赏
  • 举报
回复
public string strFlag
{
get{return viewstate["strflag"].toString();}
set{viewstate["strflag"]=value;}
}
在点击搜索的时候strFlag=txtSelect.Text.Trim();
private void DataBinder(string strContext)不要参数,直接把strContext改成strFlag。
试试
a511900703 2010-10-28
  • 打赏
  • 举报
回复
简单点说,就是页面加载成功之后,可以正常分页,没什么问题, 但是,当我输入搜索条件之后,对查询出来的结果分页的时候,就出问题了。 每次只要一点一个页码,他就会跳到页面加载的时候绑定的数据源上面。朋友说是没有记录搜索状态,但是我不知道咋记录,!!!
Rock870210 2010-10-28
  • 打赏
  • 举报
回复
前台

<div>
<asp:GridView ID="gdvData" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
Width="100%">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<webdiyer:aspnetpager id="AspNetPager1" runat="server" PageSize="5" AlwaysShow="True" OnPageChanged="AspNetPager1_PageChanged" ShowCustomInfoSection="Left" CustomInfoSectionWidth="40%" ShowPageIndexBox="always" PageIndexBoxType="TextBox"
CustomInfoHTML="第<font color='red'><b>%currentPageIndex%</b></font>页,共%PageCount%页" Width="100%"></webdiyer:aspnetpager>
</div>

后台:

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
AspNetPager1.RecordCount = DBHelper.GetCount();//得到数据的总数
this.gdvDataBind();//绑定
}
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
this.gdvDataBind();
}

protected void gdvDataBind()
{
this.gdvData.DataSource = DBHelper.GetKbhelpQuestion(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex,0,0,0,0,"","","ID");//GetKbhelpQuestion方法里面用的是分页存储过程
this.gdvData.DataBind();
}
Rock870210 2010-10-28
  • 打赏
  • 举报
回复
要说清楚,到底是怎么不行。出了什么问题。
sh_suyuelin 2010-10-28
  • 打赏
  • 举报
回复
protected void AspNetPager_PageChanged(object src, EventArgs e)
{
DataBinder((string)ViewState[vsKey], this.AspNetPager1.StartRecordIndex - 1));
}
分页你也要知道取第多少条记录把。
a511900703 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 misswangjinfeng 的回复:]
this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString()); 这个应该有误吧。
this.AspNetPager.RecordCount = dscount. Items.Count;
[/Quote]

不是额 dscount 是我专门查询 总记录数的, select count(*) from table
misswangjinfeng 2010-10-28
  • 打赏
  • 举报
回复
this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString()); 这个应该有误吧。
this.AspNetPager.RecordCount = dscount. Items.Count;
a511900703 2010-10-28
  • 打赏
  • 举报
回复
还有这个

<webdiyer:AspNetPager ID="AspNetPager" OnPageChanged="AspNetPager_PageChanged" runat="server"
HorizontalAlign="Center" PagingButtonSpacing="8Px" UrlPaging="true" UrlPageIndexName="p"
PageSize="7" CssClass="pages" CurrentPageButtonClass="cpb" FirstPageText="首页"
LastPageText="末页" NextPageText="下一页" PrevPageText="上一页" ShowMoreButtons="false"
ShowPageIndexBox="Never" AlwaysShow="true">
</webdiyer:AspNetPager>
a511900703 2010-10-28
  • 打赏
  • 举报
回复
谁能给一个这种例子我啊,本人感激不尽!
a511900703 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 liuk_moon 的回复:]
你用了PagesDataSource类了 还用AspNetPager干啥,脱裤子放屁啊。

两个都是分页的,自找麻烦
[/Quote]
我不懂额,这是看那个aspnetpager控件自带的例子里面这样搞的,不过不知道啥意思。
LiuK_Moon 2010-10-28
  • 打赏
  • 举报
回复
你用了PagesDataSource类了 还用AspNetPager干啥,脱裤子放屁啊。

两个都是分页的,自找麻烦
a511900703 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 danjiewu 的回复:]
如果用Url的方式分页,每次都是重新打开页面,没有postback,控件的值和viewstate都会清空。
所以只有2个办法
1是改用postback的方式分页
2如果必须用url的方式,那么必须把需要保持的状态通过url传递,然后在打开页面时解析url得到状态。

你可以看下google怎么分页的
[/Quote]

兄弟,要的就是那个效果,但是,不知道怎么弄!!
加载更多回复(1)
内容概要:本文档围绕“光伏并网逆变器序阻抗建模、扫频辨识与弱电网交互稳定性分析”展开,提供基于Matlab和Simulink的完整代码与仿真模型,复现了相关博士论文的核心研究成果。内容聚焦于新能源发电系统接入弱电网时的稳定性问题,系统阐述了光伏逆变器的正负序阻抗建模方法、小信号扫频辨识技术、锁相环与电流环的动态耦合效应、LCL滤波器的作用机制以及系统宽频带振荡的失稳机理。通过构建精确的序阻抗模型并结合扫频法进行稳定性判据分析,深入揭示并网逆变器与弱电网间的交互特性,为实际工程中振荡问题的预测、诊断与抑制提供坚实的理论支撑与有效的技术路径。; 适合人群:具备电力电子、自动控制理论及新能源发电系统基础知识,正在从事相关领域研究的硕士/博士研究生、高校科研人员以及电力系统行业的工程师。; 使用场景及目标:①复现并验证博士论文中关于光伏逆变器序阻抗建模与弱电网交互稳定性的关键结论;②作为科研项目或学位论文的技术蓝本,开展弱电网环境下并网系统稳定性仿真与机理研究;③深入掌握Matlab/Simulink在电力系统小信号稳定性分析、特别是阻抗建模与扫频法应用方面的高级仿真技能。; 阅读建议:学习者应结合所提供的Matlab代码与Simulink仿真模型,亲手运行并调试扫频辨识程序,细致分析序阻抗建模的每一步推导与实现过程,重点关注锁相环动态特性对系统稳定裕度的影响,通过调整控制器参数与电网强度观察系统响应变化,从而深刻理解交互失稳的内在机理,实现从理论到实践的融会贯通。

62,271

社区成员

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

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

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

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