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天了,还是不行。这代码,基本上就跟例子上的一样的。不知道为啥我这个不行
大家帮忙看一下。解决给分!
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天了,还是不行。这代码,基本上就跟例子上的一样的。不知道为啥我这个不行
大家帮忙看一下。解决给分!
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>
this.AspNetPager.RecordCount = dscount. Items.Count;
不是额 dscount 是我专门查询 总记录数的, select count(*) from table
{
DataBinder((string)ViewState[vsKey], this.AspNetPager1.StartRecordIndex - 1));
}
分页你也要知道取第多少条记录把。
<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();
}
{
get{return viewstate["strflag"].toString();}
set{viewstate["strflag"]=value;}
}
在点击搜索的时候strFlag=txtSelect.Text.Trim();
private void DataBinder(string strContext)不要参数,直接把strContext改成strFlag。
试试
参考我的
-------------------------------------
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();
}
所以只有2个办法
1是改用postback的方式分页
2如果必须用url的方式,那么必须把需要保持的状态通过url传递,然后在打开页面时解析url得到状态。你可以看下google怎么分页的
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;
{
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
代码都贴给你了 .. 把一些方法改掉就可以了
int nid = Convert.ToInt32(Request.QueryString["nid"]);
这是啥意思啊?
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事件。