Html代码
<div>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table style="width:100%;">
<tr>
<td>
id</td>
<td>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("id") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td>
name</td>
<td>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("name") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td>
sex</td>
<td>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="|<" />
<asp:Button ID="Button2" runat="server" οnclick="Button2_Click" Text="<" />
<asp:Button ID="Button3" runat="server" οnclick="Button3_Click" Text=">" />
<asp:Button ID="Button4" runat="server" Text=">|" />
</div>
C#代码
public partial class WebForm1 : System.Web.UI.Page
{
// int i = 1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
HiddenField1.Value = "1";
int i = Convert.ToInt32(HiddenField1.Value);
select(i);
}
}
private void select(int i)
{
string sqlstring = "usp_fenye";
SqlParameter[] sp = new SqlParameter[]{
new SqlParameter("@pagesize",3),
new SqlParameter("@pageindex",i),
new SqlParameter("@pagecount",SqlDbType.Bit)
};
sp[2].Direction = ParameterDirection.Output;
DataList1.DataSource = sqlhelp.select(sqlstring, sp);
DataList1.DataBind();
}
//向后条一页
protected void Button2_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(HiddenField1.Value);
if (i > 1)
{
i = i - 1;
select(i);
HiddenField1.Value = i.ToString();
}
}
//向前跳一页
protected void Button3_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(HiddenField1.Value);
i=i+1;
select(i);
HiddenField1.Value = i.ToString();
}
//跳转第一页
protected void Button1_Click(object sender, EventArgs e)
{
int i = Convert.ToInt32(HiddenField1.Value);
i = 1;
select(i);
HiddenField1.Value = i.ToString();
}
//跳转最后一页
protected void Button4_Click(object sender, EventArgs e)
{
//select(i);
}
}
sqlhelp类中的代码
public class sqlhelp
{
static string sqlstring = "data source=hp-pc;initial catalog=student1;user=sa;password=admin";
public static DataTable select(string commandText,params SqlParameter[] para)
{
using (SqlConnection con = new SqlConnection(sqlstring))
{
using (SqlCommand cmd = new SqlCommand(commandText,con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
if (para != null)
{
for(int i=0;i<para.Length;i++)
{
cmd.Parameters.Add(para[i]);
}
}
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
}
}
}
sql代码
create proc usp_fenye
@pagecount int output,--一共有多少页
@pagesize int ,--每页有几行
@pageindex int --当前第几页
as
begin
declare @count int;--总数
select @count=COUNT(*) from T_sanguo;
if(@count%@pagesize=0)
set @pagecount=@count/@pagesize;
else
set @pagecount=@count/@pagesize+1;
with temp as(select ROW_NUMBER() over(order by id asc) as iid,id,name,sex from T_sanguo)
select * from temp where iid between (@pageindex-1)*@pagesize+1 and @pageindex*@pagesize;
return @count
end