今天才知道有个AspNetPager控件可以分页!问题1:我直接将AspNetPager.dll.refresh,AspNetPager.dll这两个文件拷贝到bin文件夹中,然后在选择项中引用AspNetPager.dll,这样安装对吗?
选项卡中可以看见AspNetPager控件,但是在运行网站是,总是提示找不到程序集AspNetPager.dll,并且显示的路径和我的网站的程序路径不一样。这对我的网站运行和AspNetPager控件使用有影响吗?问题2:稀里糊涂的改写了以下代码,程序可以运行,分页栏也可以看见,但是当我点击第二页或者第X页,网页跳转后什么也不显示,一片空白,似乎没有重新绑定数据,不知道这是为何?
以上问题请大家指教!谢谢<%@ Page Language="C#" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%Response.Expires =-1000;%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
binddata();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select count(*) from player";
conn.Open();
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
conn.Close(); binddata();
}
}
protected void binddata()
{
OleDbConnection bindconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbDataAdapter bindda = new OleDbDataAdapter( "select * from player order by id desc",bindconn);
bindconn.Open();
DataSet ds = new DataSet();
bindda.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "mydata");
DataTable dt=ds.Tables["mydata"];
Repeater1.DataSource = dt;
Repeater1.DataBind();
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enableviewstate="false">
<div>
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr><td><%#Eval("id") %></td><td><%#Eval("name") %></td><td><%#Eval("age") %></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
<div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" ShowMoreButtons="false"
ShowPageIndexBox="Never" PageSize="5">
</webdiyer:AspNetPager>
</div>
</form>
</body>
</html>
选项卡中可以看见AspNetPager控件,但是在运行网站是,总是提示找不到程序集AspNetPager.dll,并且显示的路径和我的网站的程序路径不一样。这对我的网站运行和AspNetPager控件使用有影响吗?问题2:稀里糊涂的改写了以下代码,程序可以运行,分页栏也可以看见,但是当我点击第二页或者第X页,网页跳转后什么也不显示,一片空白,似乎没有重新绑定数据,不知道这是为何?
以上问题请大家指教!谢谢<%@ Page Language="C#" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%Response.Expires =-1000;%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
protected void AspNetPager1_PageChanged(object src, EventArgs e)
{
binddata();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select count(*) from player";
conn.Open();
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
conn.Close(); binddata();
}
}
protected void binddata()
{
OleDbConnection bindconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbDataAdapter bindda = new OleDbDataAdapter( "select * from player order by id desc",bindconn);
bindconn.Open();
DataSet ds = new DataSet();
bindda.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "mydata");
DataTable dt=ds.Tables["mydata"];
Repeater1.DataSource = dt;
Repeater1.DataBind();
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enableviewstate="false">
<div>
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr><td><%#Eval("id") %></td><td><%#Eval("name") %></td><td><%#Eval("age") %></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
<div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" ShowMoreButtons="false"
ShowPageIndexBox="Never" PageSize="5">
</webdiyer:AspNetPager>
</div>
</form>
</body>
</html>
protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
binddata();
}
可是,奇怪的是:无论我点击第几页CurrentPageIndex都等于1,页面也不跳转,始终显示第一页的数据,同时,下面的分页超连接也消失了。
请指教!
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
binddata();
}
}
private void binddata()
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select count(*) from player";
conn.Open();
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
conn.Close();
OleDbConnection bindconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbDataAdapter bindda = new OleDbDataAdapter( "select * from player order by id desc",bindconn);
bindconn.Open();
DataSet ds = new DataSet();
bindda.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "mydata");
DataTable dt=ds.Tables["mydata"];
Repeater1.DataSource = dt;
Repeater1.DataBind();
bindconn.Close();
}
protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
Response.Write(e.NewPageIndex);
Response.Write(AspNetPager1.CurrentPageIndex);
binddata();
}
</script>
可是,为什么e.NewPageIndex能显示正常的页码,但是AspNetPager1.CurrentPageIndex永远的都是1,我用AspNetPager1.CurrentPageIndex = e.NewPageIndex;给他赋值了啊!
请指教,谢谢
再添加这个:<%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>
然后前台:
<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页,每页%PageSize%条"
FirstPageText="首页" LastPageText="尾页" NextPageText="下一页"
PageIndexBoxType="DropDownList" PrevPageText="上一页"
ShowCustomInfoSection="Left" ShowPageIndexBox="Always" SubmitButtonText="Go"
TextAfterPageIndexBox="页" TextBeforePageIndexBox="转到" LayoutType="Table" onpagechanged="AspNetPager1_PageChanged"
>
</webdiyer:AspNetPager>
{
string cmdText = "select * from Articles";
AbsDbFactory absDbFactory = AbsDbFactory.CreateFactory();
IDbHandler db = absDbFactory.CreateServer(); DataTable table = new DataTable();
table = db.GetDataTable(cmdText);
PagedDataSource pds = new PagedDataSource();
pds.DataSource = table.DefaultView;
//分页数目
pds.PageSize = 10;
//是否分页
pds.AllowPaging = true;
//总页数
pageCount = pds.PageCount;
//
this.Label4.Text =Convert.ToString(pageCount); //下标从0开始,所以-1;
pds.CurrentPageIndex = currentPage - 1;
this.Label2.Text = Convert.ToString(currentPage); DataList1.DataSource = pds;
DataList1.DataBind();
}后面要随时更新CurrentPageIndex的值
不随着NewPageIndex改变
希望对和我一样刚开始学习使用该控件的人有所帮助
<%@ Page Language="C#" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
jisuanzongshu();//调用计算记录总数的函数,每次绑定数据都调用
binddata();
}
}
private void jisuanzongshu()
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select count(*) from player";
conn.Open();
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
conn.Close();
}
private void binddata()
{
OleDbConnection bindconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("app_data\\db.mdb"));
OleDbDataAdapter bindda = new OleDbDataAdapter( "select * from player order by id desc",bindconn);
bindconn.Open();
DataSet ds = new DataSet();
bindda.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "mydata");
DataTable dt=ds.Tables["mydata"];
Repeater1.DataSource = dt;
Repeater1.DataBind();
bindconn.Close();
Response.Write("总数"+AspNetPager1.RecordCount);
Response.Write("尺寸"+AspNetPager1.PageSize);
Response.Write("当前页"+AspNetPager1.CurrentPageIndex);
}
protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
//每次绑定数据和指定当前页时,都要指定数据记录总数
jisuanzongshu();
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
binddata();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enableviewstate="false">
<div>
<table>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr><td><%#Eval("id") %></td><td><%#Eval("name") %></td><td><%#Eval("age") %></td></tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
<div>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" PageSize="10" OnPageChanging="AspNetPager1_PageChanging" CurrentPageIndex="3">
</webdiyer:AspNetPager>
</div>
</form>
</body>
</html>