这个是html部分的代码:
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" Height="186px" Width="960px"
AutoGenerateColumns="false" PageSize="3" AllowPaging="true">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号"
ItemStyle-CssClass="tb_article_td" ItemStyle-Height="22"
HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" HeaderStyle-Height="25" />
<asp:BoundField DataField="art_topic"
ItemStyle-CssClass="tb_article_td"
HeaderText="文章标题" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_author"
ItemStyle-CssClass="tb_article_td"
HeaderText="文章作者" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_created"
ItemStyle-CssClass="tb_article_td"
HeaderText="添加时间" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_hit"
ItemStyle-CssClass="tb_article_td"
HeaderText="点击次数" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
</Columns>
<PagerTemplate>
<center>
<asp:LinkButton ID="PageFirst" Text="首页" CommandArgument="First" CommandName="Page" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PagePre" Text="上一页" CommandArgument="Prev" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PageNet" Text="下一页" CommandArgument="Next" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PageLast" Text="末页" CommandArgument="Last" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
</center>
</PagerTemplate>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br /><br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</form>
这个是 CS部分的代码:
public partial class _Default : System.Web.UI.Page
{
OleDbConnection Conn;
DataSet Ds;
OleDbDataAdapter Ada; protected void Page_Load(object sender, EventArgs e)
{
CreateConn();
CreateDataSet();
GirdBind();
} protected void PageCut_Click(object sender, EventArgs e)
{
string args = ((LinkButton)sender).CommandArgument;
this.Label2.Text += "当前索引:" + this.GridView1.PageIndex.ToString();
switch (args)
{
case "First":
this.GridView1.PageIndex = 0;
break;
case "Pre":
this.GridView1.PageIndex = (int)Math.Max(0, this.GridView1.PageIndex - 1);
break;
case "Next":
if (this.GridView1.PageIndex < this.GridView1.PageCount - 1)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
}
else
{
this.GridView1.PageIndex = this.GridView1.PageCount - 1;
}
//this.GridView1.PageIndex = (int)Math.Min(this.GridView1.PageCount - 1, this.GridView1.PageIndex + 1);
break;
case "Last":
this.GridView1.PageIndex = this.GridView1.PageCount - 1;
break;
default:
this.GridView1.PageIndex = 0;
break;
}
this.Label1.Text = (this.GridView1.PageIndex+1).ToString() + "/" + this.GridView1.PageCount.ToString();
GirdBind();
} protected void GirdBind()
{
string SQL = "select id,art_topic,art_author,art_created,art_hit from article";
Ada = new OleDbDataAdapter(SQL, Conn);
Ada.Fill(Ds, "Article");
this.GridView1.DataSource = Ds.Tables["Article"];
this.GridView1.DataBind(); CloseConn();
} protected void CreateConn()
{
string ConnString = "provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("data/Test.mdb");
Conn = new OleDbConnection(ConnString);
Conn.Open();
} protected void CreateDataSet()
{
Ds = new DataSet();
} protected void CloseConn()
{
Conn.Close();
}
}
这是数据库内容:
id art_topic art_author art_created art_text art_hit
1 文件标题是什么? 西门吹雪 2009-3-25 18:53:25 2
2 标准建模语言UML教程 南宫剑 2009-3-25 18:53:25 3
3 两个局外人的对谈录 十年砍柴 2009-3-25 18:53:25 5
4 C#邮件群发 阿森 2009-3-25 18:53:25 6
5 打死我,我也不去美国当市长! 中国 2009-3-25 18:53:25 7
6 狄 马:鼓一次明白的掌 杨恒均 2009-3-25 18:53:25 8
7 发现又一个中国特色 林达 2009-3-25 18:53:25 12
8 久违了:大会在雄壮的《国际歌》声中结束 自由门 2009-3-25 18:53:25 43
这是点击末页时的效果:编号 文章标题 文章作者 添加时间 点击次数
7 发现又一个中国特色 林达 2009-3-25 18:53:25 12
8 久违了:大会在雄壮的《国际歌》声中结束 自由门 2009-3-25 18:53:25 43
1 文件标题是什么? 西门吹雪 2009-3-25 18:53:25 2
首页 上一页 下一页 末页
问题是:为什么点击末页,第7,8条记录下面会出现第一条记录呢?
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" Height="186px" Width="960px"
AutoGenerateColumns="false" PageSize="3" AllowPaging="true">
<Columns>
<asp:BoundField DataField="id" HeaderText="编号"
ItemStyle-CssClass="tb_article_td" ItemStyle-Height="22"
HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" HeaderStyle-Height="25" />
<asp:BoundField DataField="art_topic"
ItemStyle-CssClass="tb_article_td"
HeaderText="文章标题" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_author"
ItemStyle-CssClass="tb_article_td"
HeaderText="文章作者" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_created"
ItemStyle-CssClass="tb_article_td"
HeaderText="添加时间" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
<asp:BoundField DataField="art_hit"
ItemStyle-CssClass="tb_article_td"
HeaderText="点击次数" HeaderStyle-Font-Bold="true" HeaderStyle-BackColor="#EEEEEE" />
</Columns>
<PagerTemplate>
<center>
<asp:LinkButton ID="PageFirst" Text="首页" CommandArgument="First" CommandName="Page" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PagePre" Text="上一页" CommandArgument="Prev" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PageNet" Text="下一页" CommandArgument="Next" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
<asp:LinkButton ID="PageLast" Text="末页" CommandArgument="Last" OnClick="PageCut_Click" runat="server"></asp:LinkButton>
</center>
</PagerTemplate>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br /><br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</form>
这个是 CS部分的代码:
public partial class _Default : System.Web.UI.Page
{
OleDbConnection Conn;
DataSet Ds;
OleDbDataAdapter Ada; protected void Page_Load(object sender, EventArgs e)
{
CreateConn();
CreateDataSet();
GirdBind();
} protected void PageCut_Click(object sender, EventArgs e)
{
string args = ((LinkButton)sender).CommandArgument;
this.Label2.Text += "当前索引:" + this.GridView1.PageIndex.ToString();
switch (args)
{
case "First":
this.GridView1.PageIndex = 0;
break;
case "Pre":
this.GridView1.PageIndex = (int)Math.Max(0, this.GridView1.PageIndex - 1);
break;
case "Next":
if (this.GridView1.PageIndex < this.GridView1.PageCount - 1)
{
this.GridView1.PageIndex = this.GridView1.PageIndex + 1;
}
else
{
this.GridView1.PageIndex = this.GridView1.PageCount - 1;
}
//this.GridView1.PageIndex = (int)Math.Min(this.GridView1.PageCount - 1, this.GridView1.PageIndex + 1);
break;
case "Last":
this.GridView1.PageIndex = this.GridView1.PageCount - 1;
break;
default:
this.GridView1.PageIndex = 0;
break;
}
this.Label1.Text = (this.GridView1.PageIndex+1).ToString() + "/" + this.GridView1.PageCount.ToString();
GirdBind();
} protected void GirdBind()
{
string SQL = "select id,art_topic,art_author,art_created,art_hit from article";
Ada = new OleDbDataAdapter(SQL, Conn);
Ada.Fill(Ds, "Article");
this.GridView1.DataSource = Ds.Tables["Article"];
this.GridView1.DataBind(); CloseConn();
} protected void CreateConn()
{
string ConnString = "provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Server.MapPath("data/Test.mdb");
Conn = new OleDbConnection(ConnString);
Conn.Open();
} protected void CreateDataSet()
{
Ds = new DataSet();
} protected void CloseConn()
{
Conn.Close();
}
}
这是数据库内容:
id art_topic art_author art_created art_text art_hit
1 文件标题是什么? 西门吹雪 2009-3-25 18:53:25 2
2 标准建模语言UML教程 南宫剑 2009-3-25 18:53:25 3
3 两个局外人的对谈录 十年砍柴 2009-3-25 18:53:25 5
4 C#邮件群发 阿森 2009-3-25 18:53:25 6
5 打死我,我也不去美国当市长! 中国 2009-3-25 18:53:25 7
6 狄 马:鼓一次明白的掌 杨恒均 2009-3-25 18:53:25 8
7 发现又一个中国特色 林达 2009-3-25 18:53:25 12
8 久违了:大会在雄壮的《国际歌》声中结束 自由门 2009-3-25 18:53:25 43
这是点击末页时的效果:编号 文章标题 文章作者 添加时间 点击次数
7 发现又一个中国特色 林达 2009-3-25 18:53:25 12
8 久违了:大会在雄壮的《国际歌》声中结束 自由门 2009-3-25 18:53:25 43
1 文件标题是什么? 西门吹雪 2009-3-25 18:53:25 2
首页 上一页 下一页 末页
问题是:为什么点击末页,第7,8条记录下面会出现第一条记录呢?
解决方案 »
- 在ACCESSS数据库这个语句不能用,咋办?
- Dataset ds=new Dataset() 这个ds需要Dispose一下吗?
- 显示其他机器目录文件
- 谁有<精品OA>的源码?听说三楼楼主的源码很好。刚接触OA,想参考一下。
- 急问,如何通过SOAP请求远程的WEB SERVICE!
- asp.net如何修改目录名称
- 求教:web.config中访问页面按角色自动跳转的问题
- MYSQL统计某一天的24小时的数据条数的SQL怎么写啊
- 谁有VS.net2003 MSDN 的下载,急!!!
- imagebutton是不是有N大的BUG啊,拖了,在后面定义了事件,就是不响应。烂东西。
- 求一个javascript正则表达式。
- ASP 问题!! 前辈~!!高手~!! 帮解决下! 谢谢! 急!急!急!急!急!
顶下。
不过GridView不是有内置的分页功能么? 用那个看看把
我在<GirdView>的<Columns>与</Columns>之间,加了一个<asp:Label ID="lb1" />
为什么在 cs 文件中,用
this.lb1.Text = ...
会报错说“不存在lb1..."呢?谢谢楼上兄弟!
lable 在gridview中 不能世界找到 需要 find
DataTable 里的数据不是只要需要才再次连接数据库的吗?
是不是需要放在if(!ispostback)
里面?
用aspnetpager 吧。很简单的。
string SQL = "select id,art_topic,art_author,art_created,art_hit from article";就默认的啊,没有按什么。
{//DataGrid的上一页
if (this.DataGrid1.CurrentPageIndex == 0)
{
return;
}
else
{
this.DataGrid1.CurrentPageIndex = this.DataGrid1.CurrentPageIndex - 1;
DataCreate();
this.DropDownList1.SelectedValue = Convert.ToString(this.DataGrid1.CurrentPageIndex + 1);
}
//下两行是判断是否把上一页下一页的热键取消
this.LinkUp.Enabled = (DataGrid1.CurrentPageIndex + 1 == 1) ? false : true;
this.LinkDown.Enabled = (DataGrid1.PageCount == this.DataGrid1.CurrentPageIndex + 1) ? false : true;
}
protected void LinkDown_Click(object sender, EventArgs e)
{//DataGrid的下一页
if (this.DataGrid1.CurrentPageIndex == this.DataGrid1.PageCount - 1)
{
return;
}
else
{
this.DataGrid1.CurrentPageIndex = this.DataGrid1.CurrentPageIndex + 1;
DataCreate();
this.DropDownList1.SelectedValue = Convert.ToString(this.DataGrid1.CurrentPageIndex + 1);
}
//下两行是判断是否把上一页下一页的热键取消
this.LinkUp.Enabled = (DataGrid1.CurrentPageIndex + 1 == 1) ? false : true;
this.LinkDown.Enabled = (DataGrid1.PageCount == this.DataGrid1.CurrentPageIndex + 1) ? false : true;
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
this.DataGrid1.CurrentPageIndex = Int32.Parse(this.DropDownList1.SelectedValue) - 1;
DataCreate(); //下两行是判断是否把上一页下一页的热键取消
this.LinkUp.Enabled = (DataGrid1.CurrentPageIndex + 1 == 1) ? false : true;
this.LinkDown.Enabled = (DataGrid1.PageCount == this.DataGrid1.CurrentPageIndex + 1) ? false : true;
}
catch (Exception ee)
{
throw ee;
}
}