您的位置:首页 > 其它

基于DataList的数据分页和排序展示

2013-07-10 22:20 267 查看
CS代码:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BookShopBLL;

public partial class BookList : System.Web.UI.Page
{

private int pageSize = 5;//每页显示的条数

/// <summary>
/// 当前页
/// </summary>
public int CurrentPageIndex
{
set
{
ViewState["CurrentPageIndex"] = value;
}
get
{
return Convert.ToInt32(ViewState["CurrentPageIndex"]);
}
}

/// <summary>
/// 总页数
/// </summary>
public int PageCount
{
set
{
ViewState["PageCount"] = value;
}
get
{
return Convert.ToInt32(ViewState["PageCount"]);
}
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CurrentPageIndex = 1;
BindDataList();
SetButtonStatus();
}
}

/// <summary>
/// 初始绑定数据
/// </summary>
private void BindDataList()
{
int totalCount = BooksManager.GetBooks().Count;//总记录数

PageCount = (totalCount / pageSize) + (totalCount % pageSize > 0 ? 1 : 0);//总页数

lblCount.Text = PageCount.ToString();//显示总页数
lblNoPage.Text = CurrentPageIndex.ToString();//显示当前页

//将查询出的数据绑定到DataList中
this.DataList1.DataSource = BooksManager.GetBooksPage(pageSize, CurrentPageIndex);
this.DataList1.DataBind();
}

/// <summary>
/// 获取图片地址
/// </summary>
/// <param name="isbn"></param>
/// <returns></returns>
public string ImageUrl(string isbn)
{
return "Images/BookCovers/"+isbn+".jpg";
}

/// <summary>
/// 按条件排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
//获取排序的条件
string sortName = this.DropDownList1.SelectedValue.ToString();
//根据排序的条件进行排序查询
this.DataList1.DataSource = BooksManager.GetBooksBySortName(sortName);
this.DataList1.DataBind();
}

/// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnUpPage_Click(object sender, EventArgs e)
{
CurrentPageIndex = CurrentPageIndex + 1;//页码加一
lblNoPage.Text = CurrentPageIndex.ToString();//显示当前页码
this.DataList1.DataSource = BooksManager.GetBooksPage(pageSize, CurrentPageIndex);
this.DataList1.DataBind();
SetButtonStatus();
}

/// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCurrentPage_Click(object sender, EventArgs e)
{
CurrentPageIndex = CurrentPageIndex - 1;//页码减一
lblNoPage.Text = CurrentPageIndex.ToString();//显示当前页码
this.DataList1.DataSource = BooksManager.GetBooksPage(pageSize, CurrentPageIndex);
this.DataList1.DataBind();
SetButtonStatus();
}

/// <summary>
/// 判断是否启用上一页和下一页按钮
/// </summary>
private void SetButtonStatus()
{
if (CurrentPageIndex >= PageCount)
{
this.btnUpPage.Enabled = false;
}
else
{
this.btnUpPage.Enabled = true;
}
if (CurrentPageIndex <= 1)
{
this.btnCurrentPage.Enabled = false;
}
else
{
this.btnCurrentPage.Enabled = true;
}
}
}

DAL层:

//根据条件进行排序
public static IList<Books> GetBooksBySortName(string sortName)
{
string sql = "select * from books order by "+sortName;
}

//分页方法
public static IList<Books> GetBooksPage(int pageSize,int currentPage)
{
string sql = "select top "+pageSize+" * from books where Id not in (select top "+(pageSize*(currentPage-1))+" Id from Books order by Id asc)";
}

BLL层:

public static IList<Books> GetBooksBySortName(string sortName)
{
//sortName里的值是下拉列表框里的SelectedValue
switch (sortName)
{
case "1":
sortName = "UnitPrice desc";
break;
case "2":
sortName = "UnitPrice asc";
break;
case "3":
sortName = "Clicks desc";
break;
}
return BooksService.GetBooksBySortName(sortName);
}


HTML代码:
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<dl class="list_area">
<dt><a href="#"><img src="<%#ImageUrl(Eval("ISBN").ToString()) %>" width="100" height="100" onload="set_pic_size(this,100,100);" alt="暮光之城" /></a></dt>
<dd>
<h2 class="b_title"><a href="#"><%#Eval("Title")%></a></h2>
<!--将书籍的id 写入span-->
<div class="b_score">顾客评分:<span id="book_id_15"><%#Eval("Clicks")%></span></div>
<div class="b_property">作者:<%#Eval("Author")%>编著<br />出版社:<%#Eval("PublisherId")%><br />出版时间:<%#Eval("PublishDate")%></div>
<h4 class="b_intro"><%#Eval("ContentDescription")%></h4>
<div class="b_buy">
<span class="gray del">¥35.00</span> <span class="red">¥<%#Eval("UnitPrice")%></span> 折扣:75折 节省:¥8.70
<img src="Images/btn_goumai.gif" onmouseover="this.src='Images/btn_goumai_click.gif'" />
<img src="Images/btn_zancun.gif" onmouseover="this.src='Images/btn_zancun_click.gif'" />
</div>
</dd>
</dl>
</ItemTemplate>
</asp:DataList>
共 <asp:Label ID="lblCount" runat="server" Text="Label"></asp:Label> 页,当前是第 <asp:Label ID="lblNoPage" runat="server" Text="Label"></asp:Label> 页
<asp:Button ID="btnUpPage" runat="server" Text="下一页"
onclick="btnUpPage_Click" />
<asp:Button ID="btnCurrentPage" runat="server" Text="上一页"
onclick="btnCurrentPage_Click" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐