留言簿

我要留言
留言搜索

2005-01-26 13:22  海口的天空很蓝

在帖子有人说了,把DataList 的属性: RepeatColumns=1,引用你的分页就没问题了。

难道用了你的分页控件,不能设置该属性 > 1 

请大哥帮我解决一下,谢谢,此事很急,呵呵
回复:还没有解决吗?把代码发到我的邮箱我帮您看看。谢谢!

2005-01-26 12:00  海口的天空很蓝

大哥,我用一个存储过程,你看看效果如何?


CREATE Proc p_show
@TableName nvarchar(50),   --表名
@QueryStr nvarchar(4000), --表名、视图名、查询语句
@PageSize int=10,   --每页的大小(行数)
@PageCurrent int=1,   --要显示的页
@docount bit = 0,             --获取总数
@FdShow nvarchar (4000)='', --要显示的字段列表,如果查询结果有标识字段,需要指定此值,且不包含标识字段
@FdOrder nvarchar (1000)='' --排序字段列表

as
declare @FdName nvarchar(250) --表中的主键或表、临时表中的标识列名
 ,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
 ,@Obj_ID int    --对象ID
--表中有复合主键的处理
declare @strfd nvarchar(2000) --复合主键列表
 ,@strjoin nvarchar(4000) --连接字段
 ,@strwhere nvarchar(2000) --查询条件

--获取总数
if @docount=0
begin
 exec(@QueryStr)
 return
end


select @Obj_ID=object_id(@TableName)
 ,@FdShow=case isnull(@FdShow,'') when '' then ' *' else ' '+@FdShow end
 ,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder end
 ,@QueryStr=case when @Obj_ID is not null then ' '+@QueryStr else ' ('+@QueryStr+') a' end


--如果是表,则检查表中是否有标识更或主键
if @Obj_ID is not null and objectproperty(@Obj_ID,'IsTable')=1
begin
 select @Id1=cast(@PageSize as varchar(20))
  ,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20))

 select @FdName=name from syscolumns where id=@Obj_ID and status=0x80
if @@rowcount = 1
goto tzq


--如果显示第一页,可以直接用top来完成
if @PageCurrent=1 
begin
 select @Id1=cast(@PageSize as varchar(20))
 exec('select top '+@Id1+@FdShow+' from '+@QueryStr+@FdOrder)
 return
end

 if @@rowcount=0   --如果表中无标识列,则检查表中是否有主键
 begin
  if not exists(select 1 from sysobjects where parent_obj=@Obj_ID and xtype='PK')
   goto lbusetemp  --如果表中无主键,则用临时表处理

  select @FdName=name from syscolumns where id=@Obj_ID and colid in(
   select colid from sysindexkeys where @Obj_ID=id and indid in(
    select indid from sysindexes where @Obj_ID=id and name in(
     select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
   )))

  if @@rowcount>1  --检查表中的主键是否为复合主键
  begin
   select @strfd='',@strjoin='',@strwhere=''
   select @strfd=@strfd+',['+n
回复:存储过程分页的性能和数据量大小有相当大的关系,这两天忙,没有时间测试,不过在存储过程中动态执行sql语句(用exec方法)会使分页的性能有所下降,谢谢分享您的代码!

2005-01-26 11:57  海口的天空很蓝

AspNetPager 应用到DataList出现一个问题,帮我看看,郁闷...

我应用到DataList分页,在DataList属性中设置: RepeatColumns="4"

AspNetPager :
<WEBDIYER:ASPNETPAGER id="pager" runat="server" ForeColor="Blue" CustomInfoSectionWidth="50%" Font-Size="8pt"
											NumericButtonTextFormatString="{0}" SubmitButtonText="转到" OnPageChanged="ChangePage" HorizontalAlign="Right"
											ShowInputBox="always" PagingButtonSpacing="3px" ShowCustomInfoSection="left" NumericButtonCount="5"
											BorderStyle="None" PageSize="5"></WEBDIYER:ASPNETPAGER>
----------------------------------------------------------------------------
记录总数:18 总页数:4 当前页:1 1234:  

我晕,乱七八糟了。。。。。。。。。。。

现在按上面的设置,只显示二页就分页了,郁闷.


+++++++++++++++++++++++++++
我在csdn的原帖问大哥了,帮我过去看看,谢谢.

http://community.csdn.net/Expert/topic/3754/3754598.xml?temp=.8216059
回复:控件的示例项目中有用DataList分页的示例,您可以认真看看,如果实在没法解决,可以把项目发到我的邮箱我帮您看看。谢谢!

2005-01-26 10:22  古月

<%@Register TagPrefix="webdiyer" Namespace="Wuqi.Webdiyer" Assembly="AspNetPager"%>
/////////////////////////////////////////////////////////////////////////
<form id="repeater" method="post" runat="server">
<table width="97%" border="0" align="center" cellpadding="2" cellspacing="0">  
    <tr>
      <td width="78%">			<Webdiyer:AspNetPager id="AspNetPager1" runat="server" HorizontalAlign="Right" CssClass="mypager" PageSize="6" NumericButtonCount="8" FirstPageText="<<" LastPageText=">>" PrevPageText="<" NextPageText=">" PagingButtonSpacing="8" NumericButtonTextFormatString="-{0}-" Width="100%" ShowCustomInfoSection="Left" UrlPaging="True" UrlPageIndexName="pageindex" />
						
						
						</td>
      <td width="22%">
/////////////////////////////////////////////////////////////
public void DataBinda()
		{  
			
			cmd=new OleDbCommand("SELECT f4_id, f4_motif, f4_content, f4_face, f4_sy1, f4_name, f4_date, f4_time,"+
				"f4_sy2,id_4, u_User, u_Email, u_Oicq, u_Homepage, u_Signature, u_address,u_Regtime, u_xiao, u_grade, u_images,"+
				"u_offer, u_iflock, u_pingbi, u_post,u_fenshu,g_id,g_grade,g_tb,g_txt   FROM (forum_4 inner join class4 on forum_4.f4_name=class4.u_user) "+
				"inner join usergrade on usergrade.g_id=class4.u_grade  WHERE f4_sy2 = " +asdf+ "  ORDER BY f4_id ASC",con);
			OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);
			DataSet ds=new DataSet();
			adapter.Fill(ds,AspNetPager1.PageSize*(AspNetPager1.CurrentPageIndex-1),AspNetPager1.PageSize,"forum_4");
//			adapter.Fill(ds,"forum_4");
			Repeater1.DataS
回复:可能是您下载的AspNetPager的版本太旧了,4.0版中才有CustomInfoText这个属性。谢谢!

2005-01-26 09:40  James

我下载了你的4.3版msi安装程序,结果安装的时候报错:
无法创建CustomAction.CustomAction安装程序类的实例。->调用的目标发生了异常。-->未将对象引用设置到对象的实例。
连着报两次这个错误后,安装程序终止。
回复:可能和操作系统有关系,有不少用XP的网友报过这个错误,不过我没有用过Win XP,所以做安装程序时没有在这个操作系统上测试过,如果您实在无法安装,可以发邮件给我,我给您发一份免安装版的。谢谢!

2005-01-25 17:26  菜鸟QiFang

兄弟,你做的控件不错,太谢谢你了!不过你的存储过程生成器不太适合专业用途,小弟刚学.NET不久,做了个小工具,献丑一下,希望你能弄出更好的生成器来!

谢谢!相关链接请点:
http://www.cnblogs.com/Qifang/archive/2005/01/25/97137.html

*菜鸟兵团*  成员--[菜鸟QiFang]
回复:非常感谢您,不过试了一下觉得不太好理解,尤其是对存储过程不太熟悉的新手可能不知道如何使用,我原来也有做一个winform程序来生成分页存储过程的想法,但乱七八糟的事情太多,就一直拖延下去了,我觉得一个好的存储过程生成工具应该是智能引导型的程序,可以直接连接数据库并在数据库中直接创建存储过程,即使一个不懂存储过程的人也可以轻松地用它来生成分页的存储过程。再次感谢您为此付出的心血和支持!

2005-01-25 15:41  古月

你好,,我很急。。我不知道你什么时候才能看到我的流言。我希望你加我。谢谢。。。qq加我。好吗。。谢谢。真的恨急。
回复:对不起,我上班时间忙着赶项目,而且公司的网络不稳定,没有办法上网,请原谅。如果您实在不会使用请先看看控件自带的示例和帮助,很详细的,如果还有解决不了的问题,可以把代码帖上来,我有时间会尽量及时回复。谢谢!

2005-01-25 10:10  古月

C:\Inetpub\wwwroot\dd\user_board_message.aspx.cs(80): “Wuqi.Webdiyer.AspNetPager”并不包含对“CustomInfoText”的定义
C:\Inetpub\wwwroot\dd\user_board_message.aspx.cs(81): “Wuqi.Webdiyer.AspNetPager”并不包含对“CustomInfoText”的定义
C:\Inetpub\wwwroot\dd\user_board_post.aspx.cs(87): “Wuqi.Webdiyer.AspNetPager”并不包含对“CustomInfoText”的定义
C:\Inetpub\wwwroot\dd\user_board_post.aspx.cs(88): “Wuqi.Webdiyer.AspNetPager”并不包含对“CustomInfoText”的定义
C:\Inetpub\wwwroot\dd\user_board_post.aspx.cs(89): “Wuqi.Webdiyer.AspNetPager”并不包含对“CustomInfoText”的定义
回复:您应该将出错的代码帖出来,这样子无法知道错误在什么地方。谢谢!

2005-01-25 09:34  古月

你好,我下了一个你的控件,但是老出错。我不怎么和会用。。能麻烦你交我一下吗?谢谢了。。我是直接调用你的*.dll文件。。这样对吗。我把它引用了。。。可是老出错。。谢谢你。帮帮我好吗。很急的
回复:您好,控件有详细的帮助文件,另外安装目录下有示例文件,而且也用vs.net创建的示例项目(vsproj.rar),您可以先看看,使用起来很简单的。谢谢!

2005-01-23 23:22  刘阳

MVP啊,厉害佩服佩服
回复:惭愧!谢谢留言!
;