C# 将DataPager与Repeater和SqlDataReader一起使用
对于C# 将DataPager与Repeater和SqlDataReader一起使用,c#,asp.net,C#,Asp.net,对于中继器(如GridView),是否可以使用Next和Prev以及它们之间的页码进行自定义分页?我找到了一些东西,但它只能用10页。 我想要的是这样的,google这样的东西用于分页: < 1 2 3 4 ... 15 > 这是我的密码: public bool ListBooksByCat(DataPagerRepeater.DataPagerRepeater repeater) { List<string> selection = new List<
中继器(如GridView
),是否可以使用Next和Prev以及它们之间的页码进行自定义分页?我找到了一些东西,但它只能用10页。
我想要的是这样的,google这样的东西用于分页:
< 1 2 3 4 ... 15 >
这是我的密码:
public bool ListBooksByCat(DataPagerRepeater.DataPagerRepeater repeater)
{
List<string> selection = new List<string>();
Dictionary<string, object> clause = new Dictionary<string, object>();
clause.Add("IsValid", true);
SqlDB myDb = new SqlDB(this.Connection);
try
{
SqlDataReader reader = myDb.Retrive(this.TableName, selection, clause, "bookid", true);
repeater.DataSource = reader;
repeater.DataBind();
reader.Close();
return true;
}
catch (Exception e)
{
//logging errors
return false;
}
}
public bool ListBooksByCat(DataPagerRepeater.DataPagerRepeater中继器)
{
列表选择=新列表();
字典子句=新字典();
添加(“有效”,真实);
SqlDB myDb=newsqldb(this.Connection);
尝试
{
SqlDataReader=myDb.retrve(this.TableName,selection,子句,“bookid”,true);
repeater.DataSource=读取器;
repeater.DataBind();
reader.Close();
返回true;
}
捕获(例外e)
{
//记录错误
返回false;
}
}
注意
:DataPagerRepeater.DataPagerRepeater内置于链接文章中 不应绑定到SqlReader,而应将控件绑定到DataTable或其他使数据脱机的集合(DataReader在绑定期间始终保持连接模式)。出现此错误是因为SqlDataReader是资源相关对象,任何资源相关对象都无法“传递”到客户端。我将SqlDataReader复制到数据表
中,然后将中继器绑定到它:
SqlDataReader reader = myDb.Retrive(this.TableName, selection, clause, "bookid", true);
DataTable dt = new DataTable();
dt.Load(reader);
reader.Close();
repeater.DataSource = dt;
repeater.DataBind();
SqlDataReader reader = myDb.Retrive(this.TableName, selection, clause, "bookid", true);
DataTable dt = new DataTable();
dt.Load(reader);
reader.Close();
repeater.DataSource = dt;
repeater.DataBind();