留言簿

我要留言
留言搜索

2005-11-25 14:38  快乐骑士

您好,首先感谢吴老师给我的帮助指导
我现在分页可以使用了,但是我要查询的数据表里有43条记录,但是分页查出来显示是1003条,从第5页后页面里就已经没有内容了。这是怎么回事??
存储过程是:
CREATE procedure GetAllProductsListpage
(@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(productid)  from Product
else
begin
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
create table #pageindex(id int identity(1,1) not null,nid int)
set rowcount @PageUpperBound
insert into #pageindex(nid)
select  productid  from Product order by productid desc
select  O.* ,p.* 
from Product O,#pageindex p
where O.productid=p.nid and p.id>@PageLowerBound and p.id<=@PageUpperBound order by p.id
end
set nocount off
GO
回复:您好,原因只有一个:在执行查询后没有将查询结果的记录总数重新赋值给AspNetPager的RecordCount属性!所以它显示的记录总数仍是执行查询前的记录总数。谢谢!

2005-11-23 12:11  谢云

吴老师你好,我想请问个问题,就是在DataGrid中按了超链接列跳转到一个新的面页进行修改数据,当我按提交的时候就会跳转回DataGrid显示的页面,可是为什么第次都会跳到第一页显示呢,我是在第十页的那条数据按修改的,怎么样更新完返回的时候还保留在当前页面呢?在此谢谢了!!!
回复:您好,那是因为您使用了回发方式来分页(DataGrid默认就只有这一种分页方式),这种分页方式是通过表单提交数据回发到服务器端来实现分页的,和AspNetPager的另一种Url分页方式不同,您无法在不提交表单而使页面回发的情况下跳转到第一页外的其它任何页面,如果您希望在修改数据后仍然能跳回修改时的页面,就只能用AspNetPager的Url分页方式。谢谢!

2005-11-22 15:29  老根

你好,谢谢你为大家提供一个很好的控件。你能解释一下存储过程吗,什么是标识字段,该字段可以放所有类型的吗
回复:您好,存储过程是一组完成特定功能的SQL语句,经过编译后保存在数据库中的一种数据库对象,标识字段是SQL Server数据库的说法,即通过identity关键字指定的列,它的数据类型只能是数值型,比如整数或小数,不能是其它类型。有关存储过程和标识字段的更多信息,请您参考SQL Server的联机文档或网上搜索相关资料。谢谢!

2005-11-21 16:14  abyss7i

请问AspNetPager支持分组功能吗?就像动网论坛中的分页一样,以10个为一组。在分页控件中,除开上一页,下一页外,还有上十页,下十页的功能。
如果不改动源代码,AspNetPager能支持此功能吗?
回复:您好,AspNetPager控件中的“更多”(...)按钮的功能就和分组差不多,如果一个页面有三十页数据,而页索引按钮的数目(NumericButtonCount属性的值)是默认值10,那么点击页索引右边的更多页按钮时就会跳到后十页,而点击页索引按钮左边的更多页按钮会跳到前十页,只是这个按钮的文本不能更改而已,谢谢!

2005-11-17 11:55  webdiyer

您好:
    我看好多大型网站中都是采用的动态*.html或者是*.shtml页面技术,我听朋友说在PHP中有专门的模板引擎来实现的。请问在asp.net中应该如何实现呢?希望老师能给我说一下思路和实现方法。最好能给我提供一些教程,先谢谢您了。
回复:您好,html文件都是普通的文本文件,动态生成静态的html页面和创建一个文本文件来说没有什么不同,使用System.IO命名空间下的File、FileInfo、Stream、TextWriter等类可以很容易地创建任何类型的文本文件,至于模板,那是不可能通用的,不同的页面风格会有不同的模板,您可以自己创建模板,在生成html文件时将模板中相应的部分用动态获取的内容替换即可。谢谢!

2005-11-16 17:20  annio

版主回复:您好,分页控件不会自动帮您筛选数据,不能仅仅通过设置它的PageSize属性就指望它能实现每页指定记录的分页,您还需要自己在获取数据时只获取当前页的数据并把它绑定在数据显示控件上,请检查您的数据绑定代码中当前页的数据是如何获取的。谢谢! 

-----------------------

斑竹你好,我可能没表达清楚我的意思,我的意思是分页控件有一个设置是设置每页显示多少条记录的。
回复:您好,是的,分页控件有PageSize属性就是获取或设置每页显示的记录数的,但设置这个值并不表示每页一定就会显示这么多数据,一页显示多少条记录那是由您获取的数据的多少来决定的,控件没法控制,因为它和要显示的数据是没有任何直接关系的,它的PageSize属性只是用来根据传递的总记录数计算共有多少页,以便生成分页导航按钮,它并不能控制每页显示的真实的记录数。谢谢!

2005-11-15 12:39  tianxian

你好,
我用的是ACCESS的,为什么我在取记录条数的语句里面加了个条件语句(where)后,分页就不显示了啊,不用这个条件语句后就可以正常显示了,因为我需要选择不同的分类来显示啊,所以想要where条件来限制,请问加了where后不显示分页的问题怎么解决啊,谢谢~
回复:您好,是不是因为加了条件后的记录太少了?如果记录只有一页,那么分页控件默认就不会显示,若要在只有一页数据的情况下显示分页控件,请将AlwaysShow属性设为true。谢谢!

2005-11-15 09:54  annio

你好,我有个疑问,我的程序大部分页面的分页数量是一样的,只有少数几个页面分页数量有不同,
比如大部分页面每页显示30条记录,但有另外几个页面要设置不同的数量。

我在myPageBind方法里面定义了分页数量 myPager.PageSize = 30;

但是我在另外几个页面设定的不同分页数量,起不到效果,依然都是30。

请问该如何做。
回复:您好,分页控件不会自动帮您筛选数据,不能仅仅通过设置它的PageSize属性就指望它能实现每页指定记录的分页,您还需要自己在获取数据时只获取当前页的数据并把它绑定在数据显示控件上,请检查您的数据绑定代码中当前页的数据是如何获取的。谢谢!

2005-11-15 00:17  hengxing

您好,我用了您的控件,是根据你里面提供的一个列子(repeater_url.aspx)改的,里面的结构和这个文件几乎差不多,但是,我改后的文件里面显示的记录个数是Webdiyer:AspNetPager控件里面设置的,可是下面的分页导航确不显示,请问这是什么原因啊,期待您的回复
回复:您好,不显示分页控件的最可能原因是因为要分页的数据只有一页,只有一页数据时分页控件默认不会显示,若要在此时显示分页控件,可以把它的AlwaysShow 属性值设为 true 即可。谢谢!

2005-11-12 15:40  钟红

你好,我没有用存储过程,直接将DataSet绑定到DataGrid,再用你的分页控件就不行了,我指定了每页的记录数是3,数据库有14条记录,运行完后,第一页就显示14条记录,没有分页的效果,原代码如下,你看还缺点什么?
{
   conn=new SqlConnection("server=localhost;uid=sa;database=pubs");
   conn.Open();
   SqlDataAdapter sl=new SqlDataAdapter(sql,this.conn);
   DataSet ds=new DataSet();
   sl.Fill(ds,"jobs");
    AspNetPager1.RecordCount=ds.Tables[0].Rows.Count;
    conn.Close();
    BindData();
	 }
	

	void BindData()
     {

	conn.Open();
        SqlDataAdapter sl=new SqlDataAdapter(sql,this.conn);
       DataSet ds=new DataSet();
		      
      sl.Fill(ds,"jobs");
	DataGrid1.DataSource=ds.Tables[0].DefaultView;
	DataGrid1.DataBind();
	conn.Close();
}
回复:您好,问题出在sl.Fill(ds,"jobs")这句,您将所有的记录都填充到ds中了,当然无法实现分页,正确的做法是应该只填充当前页要显示的记录,请参考控件所带的示例中对Access数据库记录进行分页的示例,谢谢!
;