AspNetPager分页控件的用法

qinxiongmao666 2011-09-05 10:20:09
dsAllbooks是从bll层(dal层得到的一个数据集)
dlAllbooks 是datalist
//设置每页显示的条数 pagesize
this.anpAllbooks.PageSize = 15;
//设置可见为true
this.anpAllbooks.Visible = true;
//得到总共有多少条数据给recordcount属性
this.anpAllbooks.RecordCount = dsAllbooks.Tables[0].Rows.Count;

SqlDataAdapter ad = new SqlDataAdapter();

ad.Fill(dsAllbooks,this.anpAllbooks.PageSize * (this.anpAllbooks.CurrentPageIndex - 1), this.anpAllbooks.PageSize, "test");//这句话现在报错,说没有实例化selectcommand
this.dlAllbooks.DataSource = dsAllbooks.Tables["test"].DefaultView;
this.dlAllbooks.DataBind();


我是用三层架构写的 这是ui层的代码 这个层现在只能得到DataSet 我该怎么做????
有没有其他的方法可以把dataset分成几段来替代Sqldataadapter的Fill方法???求助 急急急!!!!!!
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖枫无敌 2011-09-05
  • 打赏
  • 举报
回复


BLL:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model;
using System.Data;
using IDAL;

namespace BLL
{
/// <summary>
/// 书籍
/// </summary>
public class BooksBLL
{
private readonly IDALCon<Books> bookbll = DALFactory.Factory<Books>.GetIDAL(".BooksDAL");

/// <summary>
/// 添加一条书籍信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string AddBook(Books obj)
{
obj.BookID = bookbll.GetTableMaxOrder();
return bookbll.Add(obj);
}

/// <summary>
/// 删除指定的书籍信息
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public string DeleteBook(string ids)
{
List<Books> list = new List<Books>();
list.Clear();
string[] array = ids.Split(',');
foreach (string item in array)
list.Add(new Books() { BookID = int.Parse(item) });
return bookbll.Del(list);
}

/// <summary>
/// 编辑书籍信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public string EditMessage(Books obj)
{
return bookbll.Edit(obj);
}

/// <summary>
/// 获取所有的书籍信息
/// </summary>
/// <param name="pagesize"></param>
/// <param name="pageindex"></param>
/// <param name="count"></param>
/// <returns></returns>
public DataSet GetAllBook(int pagesize, int pageindex, out int count)
{
return bookbll.PageList("tb_Books", pagesize, pageindex, "BookID", true, "", out count);
}

/// <summary>
/// 根据书籍名称获取所有的书籍信息
/// </summary>
/// <param name="pagesize"></param>
/// <param name="pageindex"></param>
/// <param name="count"></param>
/// <returns></returns>
public DataSet GetAllBooksByBookName(int pagesize, int pageindex, out int count,string bookName)
{
return bookbll.PageList("tb_Books", pagesize, pageindex, "BookID", true, "1=1 and BookName like '%" + bookName + "%'", out count);
}

/// <summary>
/// 根据所属类别获取书籍信息
/// </summary>
/// <param name="pagesize"></param>
/// <param name="pageindex"></param>
/// <param name="count"></param>
/// <returns></returns>
public DataSet GetAllBookByCategoriesID(int pagesize, int pageindex, out int count, int categoryId)
{
return bookbll.PageList("tb_Books", pagesize, pageindex, "BookID", true, "1=1 AND BookCategoryID=" + categoryId, out count);
}

/// <summary>
/// 根据所属类别获取书籍信息并提供查询功能
/// </summary>
/// <param name="pagesize"></param>
/// <param name="pageindex"></param>
/// <param name="count"></param>
/// <returns></returns>
public DataSet GetAllBookByCondition(int pagesize, int pageindex, out int count, int categoryId, string bookName)
{
return bookbll.PageList("tb_Books", pagesize, pageindex, "BookID", true, "1=1 AND BookCategoryID=" + categoryId + " and BookName like '%" + bookName + "%'", out count);
}

/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public Books GetSingleBook(Books obj)
{
return bookbll.GetSingleItem(obj);
}
}
}

UI:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using USTC;
using System.Data;
using System.Drawing;

public partial class Admin_book_Manager : ModulePageBase
{
private BLL.BooksBLL blltmp = new BLL.BooksBLL();
DM dm = new DM();
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
BindDropDownList();
this.SetBookListPage();
}
}

/// <summary>
/// 绑定书籍类别表
/// </summary>
public void BindDropDownList()
{

string strSQL = "select * from tb_BookCategories";
DataSet ds = dm.getsql(strSQL);
this.ddlCategory.DataSource = ds;
this.ddlCategory.DataTextField = "BookCategoryName";
this.ddlCategory.DataValueField = "BookCategoryID";
this.ddlCategory.DataBind();
this.ddlCategory.Items.Insert(0, "所有类别");
}

/// <summary>
/// 获取书籍所属的类别
/// </summary>
/// <param name="category"></param>
/// <returns></returns>
public string getBookCategoryNameById(int categoryId)
{
string strSQL = "select BookCategoryName from tb_BookCategories where BookCategoryID=" + categoryId;
DataSet ds = dm.getsql(strSQL);
return ds.Tables[0].Rows[0]["BookCategoryName"].ToString().Trim();
}

protected void SetBookListPage()
{
int count = 0;
this.rp_list.DataSource = blltmp.GetAllBook(this.AspNetPager1.PageSize, this.AspNetPager1.CurrentPageIndex, out count).Tables[0];
this.rp_list.DataBind();
this.AspNetPager1.RecordCount = count;
AspNetPager1.CustomInfoHTML = "<font color='#000'>记录总数:</font><font color=\"blue\"><b>" + AspNetPager1.RecordCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>总页数:</font><font color=\"blue\"><b>" + AspNetPager1.PageCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>当前第:</font><font color=\"red\"><b>" + AspNetPager1.CurrentPageIndex.ToString() + " </b></font>页";
}

//分页事件
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
this.SetBookListPage();
}

//搜索事件
protected void ibSearch_Click(object sender, ImageClickEventArgs e)
{
int count = 0;
if (this.ddlCategory.SelectedIndex == 0&&string.IsNullOrEmpty(this.tbArgs.Text))
{
SetBookListPage();
}
else if (this.ddlCategory.SelectedIndex == 0 && !string.IsNullOrEmpty(this.tbArgs.Text))
{
this.rp_list.DataSource = blltmp.GetAllBooksByBookName(this.AspNetPager1.PageSize, this.AspNetPager1.CurrentPageIndex, out count, this.tbArgs.Text.Trim()).Tables[0];
this.rp_list.DataBind();
this.AspNetPager1.RecordCount = count;
AspNetPager1.CustomInfoHTML = "<font color='#000'>记录总数:</font><font color=\"blue\"><b>" + AspNetPager1.RecordCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>总页数:</font><font color=\"blue\"><b>" + AspNetPager1.PageCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>当前第:</font><font color=\"red\"><b>" + AspNetPager1.CurrentPageIndex.ToString() + " </b></font>页";
}
else
{
this.rp_list.DataSource = blltmp.GetAllBookByCondition(this.AspNetPager1.PageSize, this.AspNetPager1.CurrentPageIndex, out count, int.Parse(this.ddlCategory.SelectedItem.Value), this.tbArgs.Text.Trim()).Tables[0];
this.rp_list.DataBind();
this.AspNetPager1.RecordCount = count;
AspNetPager1.CustomInfoHTML = "<font color='#000'>记录总数:</font><font color=\"blue\"><b>" + AspNetPager1.RecordCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>总页数:</font><font color=\"blue\"><b>" + AspNetPager1.PageCount.ToString() + " </b></font>";
AspNetPager1.CustomInfoHTML += "<font color='#000'>当前第:</font><font color=\"red\"><b>" + AspNetPager1.CurrentPageIndex.ToString() + " </b></font>页";
}
}

/// <summary>
/// 获取书籍所属的类别
/// </summary>
/// <param name="category"></param>
/// <returns></returns>
public string getBookReadCounter(int bookId)
{
string strSQL = "select count(BookID) as counter from tb_StudentReadBooks where BookID=" + bookId;
DataSet ds = dm.getsql(strSQL);
return ds.Tables[0].Rows[0]["counter"].ToString().Trim() + " 次";
}

/// <summary>
/// 是否必读转换
/// </summary>
/// <param name="tag"></param>
/// <returns></returns>
public string getIsMustRead(int tag)
{
string ret = string.Empty;
switch (tag)
{
case 0:
ret = "选读";
break;
case 1:
ret = "必读";
break;
default:
break;
}
return ret;
}

protected void rp_list_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lb = e.Item.FindControl("lblMustRead") as Label;
if (lb.Text == "必读")
{
lb.ForeColor = Color.Red;
}
}
}
}
暖枫无敌 2011-09-05
  • 打赏
  • 举报
回复

DAL:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using System.Data;

namespace SQLServerDAL
{
public class BooksDAL : IDALAdapter<Books>
{
private const string PARAM_SELECT_BookMaxOrder = "SELECT (ISNULL(MAX(BookID),0)+1) AS maxorder FROM tb_Books";
private const string PARAM_INSERT_Book = "INSERT INTO tb_Books(BookID,BookCategoryID,BookName,Author,ISBN,Press,BookPic,BookIntro,IsMustRead,BookRecommendResult) VALUES(@BookID,@BookCategoryID,@BookName,@Author,@ISBN,@Press,@BookPic,@BookIntro,@IsMustRead,@BookRecommendResult)";
private const string PARAM_UPDATE_Book = "UPDATE tb_Books SET BookCategoryID=@BookCategoryID,BookName=@BookName,Author=@Author,ISBN=@ISBN,Press=@Press,BookPic=@BookPic,BookIntro=@BookIntro,IsMustRead=@IsMustRead,BookRecommendResult=@BookRecommendResult WHERE BookID=@BookID";
private const string PARAM_SELECT_SingleBook = "SELECT * FROM tb_Books WHERE BookID=@BookID";

/// <summary>
/// 添加一条书籍信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public override string Add(Books obj)
{
Database db = NopDataHelper.CreateConnection();
DbCommand dbCommand = db.GetSqlStringCommand(PARAM_INSERT_Book);
db.AddInParameter(dbCommand, "BookID", DbType.Int32, obj.BookID);
db.AddInParameter(dbCommand, "BookCategoryID", DbType.String, obj.BookCategoryID);
db.AddInParameter(dbCommand, "BookName", DbType.String, obj.BookName);
db.AddInParameter(dbCommand, "Author", DbType.String, obj.Author);
db.AddInParameter(dbCommand, "ISBN", DbType.String, obj.ISBN);
db.AddInParameter(dbCommand, "Press", DbType.String, obj.Press);
db.AddInParameter(dbCommand, "BookPic", DbType.String, obj.BookPic);
db.AddInParameter(dbCommand, "BookIntro", DbType.String, obj.BookIntro);
db.AddInParameter(dbCommand, "IsMustRead", DbType.Int32, obj.IsMustRead);
db.AddInParameter(dbCommand, "BookRecommendResult", DbType.String, obj.BookRecommendResult);
int rows = db.ExecuteNonQuery(dbCommand);
if (rows > 0)
return "ok";
else
return "error";
}

/// <summary>
/// 删除一条书籍信息
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public override string Del(List<Books> list)
{
return base.Del(list, "DELETE from tb_Books WHERE BookID=", "BookID");
}

/// <summary>
/// 编辑一条书籍信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public override string Edit(Books obj)
{
Database db = NopDataHelper.CreateConnection();
DbCommand dbCommand = db.GetSqlStringCommand(PARAM_UPDATE_Book);
db.AddInParameter(dbCommand, "BookID", DbType.Int32, obj.BookID);
db.AddInParameter(dbCommand, "BookCategoryID", DbType.Int32, obj.BookCategoryID);
db.AddInParameter(dbCommand, "BookName", DbType.String, obj.BookName);
db.AddInParameter(dbCommand, "Author", DbType.String, obj.Author);
db.AddInParameter(dbCommand, "ISBN", DbType.String, obj.ISBN);
db.AddInParameter(dbCommand, "Press", DbType.String, obj.Press);
db.AddInParameter(dbCommand, "BookPic", DbType.String, obj.BookPic);
db.AddInParameter(dbCommand, "BookIntro", DbType.String, obj.BookIntro);
db.AddInParameter(dbCommand, "IsMustRead", DbType.Int32, obj.IsMustRead);
db.AddInParameter(dbCommand, "BookRecommendResult", DbType.String, obj.BookRecommendResult);
int rows = db.ExecuteNonQuery(dbCommand);
if (rows > 0)
return "ok";
else
return "error";
}

/// <summary>
/// 获取所有书籍信息
/// </summary>
/// <returns></returns>
public override IList<Books> GetAllItems()
{
return base.GetAllItems();
}

/// <summary>
/// 获取某一条书籍信息
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public override Books GetSingleItem(Books obj)
{
Books item = null;
Database db = NopDataHelper.CreateConnection();
DbCommand dbCommand = db.GetSqlStringCommand(PARAM_SELECT_SingleBook);
db.AddInParameter(dbCommand, "BookID", DbType.Int32, obj.BookID);
using (IDataReader dr = db.ExecuteReader(dbCommand))
{
if (dr.Read())
{
item = new Books
{
BookID = NopDataHelper.GetInt(dr, "BookID"),
BookCategoryID = NopDataHelper.GetInt(dr, "BookCategoryID"),
BookName = NopDataHelper.GetString(dr, "BookName"),
Author = NopDataHelper.GetString(dr, "Author"),
ISBN = NopDataHelper.GetString(dr, "ISBN"),
Press = NopDataHelper.GetString(dr, "Press"),
BookPic = NopDataHelper.GetString(dr, "BookPic"),
BookIntro = NopDataHelper.GetString(dr, "BookIntro"),
IsMustRead = NopDataHelper.GetInt(dr,"IsMustRead"),
BookRecommendResult = NopDataHelper.GetString(dr, "BookRecommendResult")
};
}
else
item = new Books();
}
return item;
}

/// <summary>
/// 获取最大值
/// </summary>
/// <returns></returns>
public override int GetTableMaxOrder()
{
return base.GetTableMaxOrder(PARAM_SELECT_BookMaxOrder);
}

/// <summary>
/// 分页代码
/// </summary>
/// <param name="tblName"></param>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <param name="fldSort"></param>
/// <param name="sort"></param>
/// <param name="condition"></param>
/// <param name="count"></param>
/// <returns></returns>
public override DataSet PageList(string tblName, int pageSize, int pageIndex, string fldSort, bool sort, string condition, out int count)
{
return base.PageList(tblName, pageSize, pageIndex, fldSort, sort, condition, out count);
}

/// <summary>
/// 获取表中记录总数
/// </summary>
/// <param name="tblName"></param>
/// <param name="condition"></param>
/// <returns></returns>
public override int GetCount(string tblName, string condition)
{
return base.GetCount(tblName, condition);
}
}
}


暖枫无敌 2011-09-05
  • 打赏
  • 举报
回复
IDAL:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;

namespace IDAL
{
public interface IDALCon<T>
{
#region Base Add
/// <summary>
/// 添加
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
string Add(T obj);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
string Add(ArrayList list);

/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <param name="list"></param>
/// <returns></returns>
string Add(T obj, ArrayList list);
#endregion

#region Base Delete
/// <summary>
/// 删除
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
string Del(T obj);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
string Del(List<T> list);
#endregion

#region Base Edit
/// <summary>
/// 修改
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
string Edit(T obj);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
string Eidt(params object[] list);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
string Eidt(ArrayList list);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
string Eidt(List<T> list);
#endregion

#region AllItems
/// <summary>
///
/// </summary>
/// <returns></returns>
IList<T> GetAllItems();

/// <summary>
/// 返回一个项集合
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
IList<T> GetAllItems(T obj);

/// <summary>
///
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
IList<T> GetAllItems(int type);

/// <summary>
///
/// </summary>
/// <returns></returns>
IList<T> GetAllItems(int n, T obj);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
DataTable GetAllItems(params object[] list);
#endregion

#region Display
/// <summary>
///
/// </summary>
/// <param name="n"></param>
/// <param name="obj"></param>
/// <returns></returns>
IList<T> GetAllTopItems(int n, T obj);

/// <summary>
///
/// </summary>
/// <param name="n"></param>
/// <param name="obj"></param>
/// <returns></returns>
IList<T> GetAllHotItems(int n, T obj);

/// <summary>
///
/// </summary>
/// <param name="n"></param>
/// <param name="obj"></param>
/// <returns></returns>
IList<T> GetAllRecommendItems(int n, T obj);

/// <summary>
///
/// </summary>
/// <param name="n"></param>
/// <param name="obj"></param>
/// <returns></returns>
IList<T> GetAllIndexItems(int n, T obj);
#endregion

#region SingleItem
/// <summary>
/// 返回一个单项
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
T GetSingleItem(T obj);

/// <summary>
///
/// </summary>
/// <param name="obj"></param>
/// <param name="id"></param>
/// <returns></returns>
T GetSingleItem(T obj, string id);

/// <summary>
///
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
T GetSingleItem(params object[] list);
#endregion

#region User-Menu
/// <summary>
///
/// </summary>
/// <param name="refDataSet"></param>
/// <param name="obj"></param>
void GetDataSet(ref DataSet refDataSet, T obj);

/// <summary>
///
/// </summary>
/// <param name="refDataSet"></param>
/// <param name="obj"></param>
void GetDataSet(ref DataSet refDataSet, params object[] list);

/// <summary>
///
/// </summary>
/// <param name="dirID"></param>
/// <param name="obj"></param>
/// <returns></returns>
int GetObjEnable(long dirID, T obj);
#endregion

#region MaxOrder
/// <summary>
///
/// </summary>
/// <returns></returns>
int GetTableMaxOrder();

/// <summary>
///
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
int GetTableMaxOrder(int type);
#endregion

#region Page
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="tblName">表名</param>
/// <param name="fldName">字段名</param>
/// <param name="pageSize">页大小</param>
/// <param name="pageIndex">第几页</param>
/// <param name="fldSort">排序字段</param>
/// <param name="sort">升序/降序</param>
/// <param name="strCondition">条件(不需要where)</param>
/// <param name="pageCount">页数</param>
/// <param name="count">记录条数</param>
/// <param name="strSql">SQL语句</param>
/// <returns></returns>
DataSet PageList(string tblName, int pageSize, int pageIndex,
string fldSort, bool sort, string condition, out int count);


/// <summary>
/// 获取表数据量
/// </summary>
/// <param name="tblName">表名</param>
/// <returns></returns>
int GetCount(string tblName, string condition);
#endregion

}
}

sihonglaoren 2011-09-05
  • 打赏
  • 举报
回复
不知道
子夜__ 2011-09-05
  • 打赏
  • 举报
回复
分页控件

例子

<asp:GridView ID="GridView1" runat="server" EnableViewState="false">
</asp:GridView>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" PageSize="10" OnPageChanging="AspNetPager1_PageChanging">
</webdiyer:AspNetPager>


using System;
using System.Data;
using Wuqi.Webdiyer;
using ZhongCong.WebForm;

public partial class MySql : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DisplayData(AspNetPager1.PageSize, 1);
}
}

private void DisplayData(int pageSize, int pageIndex)
{
string sqlStr = "select count(*) from 测试";
MySqlData md = new MySqlData();
AspNetPager1.RecordCount = Convert.ToInt32(md.ExecuteScalar(sqlStr));
sqlStr = String.Format("select * from 测试 limit {0},{1}", ((pageIndex - 1) * pageSize).ToString(), pageSize.ToString());
md.SetCommandText(sqlStr);
DataTable dt = md.FillDataTable();
md.Close();
GridView1.DataSource = dt;
GridView1.DataBind();
}

protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
DisplayData(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex);
}
}


62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧