前台代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PagedDataSource分页.aspx.cs" Inherits="PagedDataSource分页" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>PagedDataSource分页</title>
<style type="text/css">
.style1
{
width: 769px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" BackColor="White"
BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
ForeColor="Black" GridLines="Vertical">
<FooterStyle BackColor="#CCCC99" />
<ItemTemplate>
<asp:Label ID="lbNwes" runat="server" Text='<%#Eval("Title")%>'></asp:Label>
<asp:Label ID="lbTime" runat="server" Text='<%#Eval("Dtime")%>'></asp:Label>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#F7F7DE" />
<SelectedItemStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
</asp:DataList></div>
<br />
共<asp:Label ID="lb_count" runat="server" Text="Label"></asp:Label>条记录
共<asp:Label ID="lb_page" runat="server" Text="Label"></asp:Label>页
当前第<asp:Label ID="lb_CurrentPage" runat="server" Text="1"></asp:Label>页
<asp:LinkButton ID="LinkFirst" runat="server" OnClick="LinkFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="LinkUp" runat="server" OnClick="LinkUp_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkDown" runat="server" OnClick="LinkDown_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkLast" runat="server" OnClick="LinkLast_Click">最后一页</asp:LinkButton>
转到第<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>页
<br>
<table>
<tr>
<td align=center>检索关键字:<asp:TextBox ID="Search" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="查询" onclick="Button1_Click" />
</td>
</tr>
</table>
<asp:Label ID="Message" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>后台代码:
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class PagedDataSource分页 : System.Web.UI.Page
{
protected SqlConnection conn;
protected SqlDataAdapter da;
protected DataSet ds;
protected SqlCommand Comm;
protected void Page_Load(object sender, EventArgs e)
{
//第一次访问时建立数据集
//if (!IsPostBack)
//{
conn = new SqlConnection("server=.;database=mynews;UID=sa;PassWord=12345");
da = new SqlDataAdapter();
ds = new DataSet();
da.SelectCommand = new SqlCommand("select * from News", conn);
conn.Open();
da.Fill(ds, "Article");
conn.Close();
GetArticle();
//}
} private void GetArticle()
{
int cup = Convert.ToInt32(this.lb_CurrentPage.Text);
Message.Text = cup.ToString(); //显示当前页数
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["Article"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 6;
ps.CurrentPageIndex = cup - 1;
lb_count.Text = ps.DataSourceCount.ToString();
lb_page.Text = ps.PageCount.ToString();
if (!IsPostBack)
{
for (int i = 1; i < ps.PageCount + 1; i++)
{
this.DropDownList1.Items.Add(i.ToString());
}
LinkUp.Enabled = true;
LinkDown.Enabled = true;
}
try
{
//DropDownList1.SelectedItem.Text = cup.ToString();
DataList1.DataSource = ps;
DataList1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
protected void LinkDown_Click(object sender, EventArgs e)
{
try
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) + 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('已经是最后一页!');</script>");
lb_CurrentPage.Text = "1";
GetArticle();
}
}
protected void LinkFirst_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text != "1")
lb_CurrentPage.Text = "1";
else
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
} protected void LinkUp_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToInt16(lb_CurrentPage.Text) > 1)
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) - 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
else
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
}
protected void LinkLast_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text.ToString() != lb_page.Text.ToString())
lb_CurrentPage.Text = lb_page.Text.ToString();
else
{
Response.Write("<script language='javascript'>alert('已经是最后一页!');</script>");
}
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int page = Convert.ToInt16(DropDownList1.SelectedItem.Value);
lb_CurrentPage.Text = page.ToString();
GetArticle();
}
protected void Button1_Click(object sender, EventArgs e)
{
//检索数据时重新建立数据集
conn = new SqlConnection("server=.;database=mynews;UID=sa;PassWord=12345");
da = new SqlDataAdapter();
ds = new DataSet();
da.SelectCommand = new SqlCommand("select Id,Title,Dtime from News where Title like '%" + Search.Text.ToString() + "%'order by Id desc", conn);
conn.Open();
da.Fill(ds, "Article");
conn.Close();
GetArticle();
}
}
<head runat="server">
<title>PagedDataSource分页</title>
<style type="text/css">
.style1
{
width: 769px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" BackColor="White"
BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4"
ForeColor="Black" GridLines="Vertical">
<FooterStyle BackColor="#CCCC99" />
<ItemTemplate>
<asp:Label ID="lbNwes" runat="server" Text='<%#Eval("Title")%>'></asp:Label>
<asp:Label ID="lbTime" runat="server" Text='<%#Eval("Dtime")%>'></asp:Label>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#F7F7DE" />
<SelectedItemStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
</asp:DataList></div>
<br />
共<asp:Label ID="lb_count" runat="server" Text="Label"></asp:Label>条记录
共<asp:Label ID="lb_page" runat="server" Text="Label"></asp:Label>页
当前第<asp:Label ID="lb_CurrentPage" runat="server" Text="1"></asp:Label>页
<asp:LinkButton ID="LinkFirst" runat="server" OnClick="LinkFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="LinkUp" runat="server" OnClick="LinkUp_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkDown" runat="server" OnClick="LinkDown_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkLast" runat="server" OnClick="LinkLast_Click">最后一页</asp:LinkButton>
转到第<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>页
<br>
<table>
<tr>
<td align=center>检索关键字:<asp:TextBox ID="Search" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="查询" onclick="Button1_Click" />
</td>
</tr>
</table>
<asp:Label ID="Message" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>后台代码:
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class PagedDataSource分页 : System.Web.UI.Page
{
protected SqlConnection conn;
protected SqlDataAdapter da;
protected DataSet ds;
protected SqlCommand Comm;
protected void Page_Load(object sender, EventArgs e)
{
//第一次访问时建立数据集
//if (!IsPostBack)
//{
conn = new SqlConnection("server=.;database=mynews;UID=sa;PassWord=12345");
da = new SqlDataAdapter();
ds = new DataSet();
da.SelectCommand = new SqlCommand("select * from News", conn);
conn.Open();
da.Fill(ds, "Article");
conn.Close();
GetArticle();
//}
} private void GetArticle()
{
int cup = Convert.ToInt32(this.lb_CurrentPage.Text);
Message.Text = cup.ToString(); //显示当前页数
PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["Article"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 6;
ps.CurrentPageIndex = cup - 1;
lb_count.Text = ps.DataSourceCount.ToString();
lb_page.Text = ps.PageCount.ToString();
if (!IsPostBack)
{
for (int i = 1; i < ps.PageCount + 1; i++)
{
this.DropDownList1.Items.Add(i.ToString());
}
LinkUp.Enabled = true;
LinkDown.Enabled = true;
}
try
{
//DropDownList1.SelectedItem.Text = cup.ToString();
DataList1.DataSource = ps;
DataList1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
protected void LinkDown_Click(object sender, EventArgs e)
{
try
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) + 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('已经是最后一页!');</script>");
lb_CurrentPage.Text = "1";
GetArticle();
}
}
protected void LinkFirst_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text != "1")
lb_CurrentPage.Text = "1";
else
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
} protected void LinkUp_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToInt16(lb_CurrentPage.Text) > 1)
{
lb_CurrentPage.Text = Convert.ToString(Convert.ToInt32(lb_CurrentPage.Text) - 1);
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
else
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
}
catch (Exception ex)
{
Response.Write("<script language='javascript'>alert('已经是第一页!');</script>");
}
}
protected void LinkLast_Click(object sender, EventArgs e)
{
if (lb_CurrentPage.Text.ToString() != lb_page.Text.ToString())
lb_CurrentPage.Text = lb_page.Text.ToString();
else
{
Response.Write("<script language='javascript'>alert('已经是最后一页!');</script>");
}
DropDownList1.SelectedValue = lb_CurrentPage.Text;
GetArticle();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int page = Convert.ToInt16(DropDownList1.SelectedItem.Value);
lb_CurrentPage.Text = page.ToString();
GetArticle();
}
protected void Button1_Click(object sender, EventArgs e)
{
//检索数据时重新建立数据集
conn = new SqlConnection("server=.;database=mynews;UID=sa;PassWord=12345");
da = new SqlDataAdapter();
ds = new DataSet();
da.SelectCommand = new SqlCommand("select Id,Title,Dtime from News where Title like '%" + Search.Text.ToString() + "%'order by Id desc", conn);
conn.Open();
da.Fill(ds, "Article");
conn.Close();
GetArticle();
}
}
解决方案 »
- 网站部分页面打不开,一直处于等待状态
- 画温度折线图、降水量柱状图用什么方法好,或者什么控件好?
- 自定义控件注册的js/css在ajax UpdatePanel 中为什么后显示的就没有效果了?
- 我上传到服务器的压缩文件我想解压缩,谁帮帮我啊.
- |M| 200分:求SQL查询语句:多表汇总 谢谢
- 关于截取DataBinder.Eval返回的值
- 关于asp.net中获取URL 的一个很难的问题! 没有分了,请大家也帮帮忙了
- Asp.Net下的票据打印问题
- 【PetShop 1.5】 中利用 OPEN XML 查询的同时更新主表和多条明细记录的范例存储过程
- 字符串处理问题??
- 几个代码需要高手帮忙下!希望有好心人 急!
- vs2008中添加ASP.NET文件夹为什么没有App_Code这个文件夹?
{
for (int i = 1; i < ps.PageCount + 1; i++)
{
this.DropDownList1.Items.Add(i.ToString());
}
LinkUp.Enabled = true;
LinkDown.Enabled = true;
}
关键是你这里的!IsPostBack了。这里在你再次检索的时候,它也不执行,相当于数据更新了,页面导航没有更新导致。如果没有意外的话,估计你的页面导航点击后会有错误发生。去掉它看看有什么效果。