AspNet_webformaspx页面_实现分页
来源:互联网 发布:linux ansi 控制码 编辑:程序博客网 时间:2024/05/22 17:18
List.aspx:
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<th>编号</th><th>希望标题</th><th>新闻发布时间</th><th>操作</th>
</tr>
<%=this.TrBody %>
</table>
<div class="paginator">
<%--此div放我们所有的分页的超级链接--%>
<%-- <% for (int i = 1; i <= PageCount; i++)
{ %>
<a href="MainList.aspx?pageIndex=<%=i %>"><%= i %></a>
<% } %>--%>
<hr/>
<%= NavPageLink %>
</div>
</div>
</form>
</body>
list.aspx.cs:
public partial class MainList : System.Web.UI.Page
{
public string TrBody { get; set; }
public int PageCount { get; set; }
public string NavPageLink { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
//拿到当前请求的页码
int pageIndex = int.Parse(Request["pageIndex"] ?? "1");
int pageSize = 5;
int totalCount = 0;
//从数据库中获取所有的新闻,然后发送前台进行展示
BLL.HKSJ_Main mianService =new HKSJ_Main();
//把所有数据集都查询出来。
//List<Model.HKSJ_Main> newsList = mianService.GetModelList("");
//把当前页的数据查询出来。取第二页的数据:6-10条数据。
//调用存储过程:LoadPageMain
List<Model.HKSJ_Main> newsList= mianService.LoadPageMainByProc(pageSize, pageIndex, out totalCount);
StringBuilder sb =new StringBuilder();
foreach (var hksjMain in newsList)
{
sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td><a href='EditMain.aspx?id={0}'>修改</a></td></tr>", hksjMain.ID, hksjMain.title,
hksjMain.Date);
}
TrBody = sb.ToString();
//页 5条。 总共有7条。 2页。 7/5=1
PageCount = Math.Max((totalCount + pageSize - 1)/pageSize,1);
NavPageLink = Common.LaomaPager.ShowPageNavigate(pageSize, pageIndex, totalCount);
}
}
HKSJ_MainExt.cs:
public partial class HKSJ_Main
{
public List<Model.HKSJ_Main> LoadPageMainByProc(int pageSize,int pageIndex,out int count)
{
using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "LoadPageMain";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@pageIndex", pageIndex));
cmd.Parameters.Add(new SqlParameter("@pageSize", pageSize));
SqlParameter outCount = new SqlParameter("@count",SqlDbType.Int);
//设置当前为输出参数。
outCount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outCount);
//1、拿到输出参数,一种办法就 是通过 存储过程直接返回一个表,表里面放输出参数的值。
//2、使用的SqlDataAdapter也可拿到输出参数。
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataSet ds =new DataSet();
adapter.Fill(ds);//填充的时候,自动打开连接,填充完了之后,自动关闭链接。
//这时候可以拿到输出参数值。
count = (int)outCount.Value;
List<Model.HKSJ_Main> mainList =new List<Model.HKSJ_Main>();
foreach ( DataRow row in ds.Tables[0].Rows)
{
mainList.Add(this.DataRowToModel(row));
}
return mainList;
}
//using (var reader = cmd.ExecuteReader())
//{
////如果连接没有断掉的时候,不会拿到输出参数。
//}
}
}
}
}
public class LaomaPager
{
/// <summary>
/// 传几个参数过来,帮助我们生产分页的超级链接而已。
/// </summary>
/// <param name="pageSize"></param>
/// <param name="currentPage"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
public static string ShowPageNavigate(int pageSize, int currentPage, int totalCount)
{
string redirectTo = "";
pageSize = pageSize == 0 ? 3 : pageSize;
var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数
var output = new StringBuilder();
if (totalPages > 1)
{
if (currentPage != 1)
{//处理首页连接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);
}
if (currentPage > 1)
{//处理上一页的连接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);
}
else
{
// output.Append("<span class='pageLink'>上一页</span>");
}
output.Append(" ");
int currint = 5;
for (int i = 0; i <= 10; i++)
{//一共最多显示10个页码,前面5个,后面5个
if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages)
{
if (currint == i)
{//当前页处理
//output.Append(string.Format("[{0}]", currentPage));
output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);
}
else
{//一般页处理
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);
}
}
output.Append(" ");
}
if (currentPage < totalPages)
{//处理下一页的链接
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);
}
else
{
//output.Append("<span class='pageLink'>下一页</span>");
}
output.Append(" ");
if (currentPage != totalPages)
{
output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);
}
output.Append(" ");
}
output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行
return output.ToString();
}
}
SQLQuerry:
--pageIndex:页码
--pageSize:一页多少条数据
--要求把当前页的数据查询出来。
create Proc LoadPageMain
@pageIndex int,--4
@pageSize int,--5
@count int out
as
select top(@pageSize) * from HKSJ_Main
where ID not in --越过第pageIndex-1页
(
select top(@pageSize*(@pageIndex-1)) ID
from HKSJ_Main
order by ID
)
order by ID
select @count=count(1) from HKSJ_Main
--set @count=(select count(1) from HKSJ_Main)
select @count
--存储过程可不可以返回多个数据。可不可以返回多个表?
-------------------------------------------
declare @count int
exec LoadPageMain 3,5,@count output
print @count
select *,0 from HKSJ_Main
- AspNet_webformaspx页面_实现分页
- AspNet_webformaspx页面_防盗链
- AspNet_webformaspx页面
- AspNet_webformaspx页面_Buffer
- AspNet_webformaspx页面_Server
- AspNet_webformaspx页面_Session
- 页面分页的实现
- 页面分页实现
- jsp页面实现分页
- jsp实现页面分页。
- 1_分页实现方案
- 6_分页的实现
- JavaBean+Jsp 实现页面分页
- JSP页面实现分页功能
- JSP页面分页技术实现
- jsp页面的分页实现
- 用jquery datatables实现页面分页,前端分页,后端分页
- 在listview中,实现_分页加载_异步加载
- 占位
- 如何将jsp动态网页转换成静态页面
- 占位
- 如何写一个简单的局域网游戏
- spring整合testng和junit
- AspNet_webformaspx页面_实现分页
- 安装交叉工具链arm-linux-gcc
- uploadify 文件上传 struts2
- Chapter 7Iterators and the Generic for
- 提高程序员面试代码质量的三要素
- 自己学习LINQ记录(二)
- 弹出中间层
- 罗马数字翻译成英文
- 《MySQL 5.6从零开始学(视频教学版)(配光盘)》