您的位置:首页 > 其它

【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)

2013-07-06 14:13 661 查看
通用分页控件(DataGrid,DataList,Repeater都可以用它来分页)

</script> <TABLE ID="Table1" CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BORDER="0"> <colgroup> <col width="400"> <col width="50"> <col width="50"> <col width="40"> <col width="20"> <col width="40"> <col width="40"> <col width="50"> <col width="70"> </colgroup> <TR align="right"> <td></td> <TD><asp:LinkButton id="btnFirstPage" runat="server" CommandArgument="First">第一页</asp:LinkButton></TD> <TD><asp:LinkButton id="btnPrevPage" runat="server" CommandArgument="Prev">上一页</asp:LinkButton></TD> <TD><ASP:TEXTBOX ID="txtCurrentPage" RUNAT="server" MAXLENGTH="3" Width="40">0</ASP:TEXTBOX></TD> <TD><ASP:LABEL ID="labOf" RUNAT="server">of</ASP:LABEL></TD> <TD><ASP:LABEL ID="lblTotal" RUNAT="server">0</ASP:LABEL></TD> <TD><ASP:BUTTON ID="btnGo" RUNAT="server" TEXT="转到" COMMANDARGUMENT="Go" ToolTip="转到"></ASP:BUTTON></TD> <TD><asp:LinkButton id="btnNextPage" runat="server" CommandArgument="Next">下一页</asp:LinkButton></TD> <TD><asp:LinkButton id="btnLastPage" runat="server" CommandArgument="Last">最后一页</asp:LinkButton></TD> </TR> </TABLE>
1.2 cs代码

public class Pager : System.Web.UI.UserControl <HTML> <HEAD> <title>DataGridPage</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 632px; POSITION: absolute; TOP: 40px" runat="server"></asp:datagrid><uc1:pager id="Pager1" runat="server"></uc1:pager><asp:datalist id="DataList1" style="Z-INDEX: 102; LEFT: 264px; POSITION: absolute; TOP: 40px" runat="server"> <ItemTemplate> <table> <tr> <td>用户ID:</td> <td>用户名:</td> </tr> </table> </ItemTemplate> </asp:datalist> <asp:repeater id="Repeater1" runat="server"> <HEADERTEMPLATE> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td>用户ID</td> <td>用户名:</td> </tr> </HEADERTEMPLATE> <ITEMTEMPLATE> <tr> <td> </td> </tr> </ITEMTEMPLATE> <FOOTERTEMPLATE> </table> </FOOTERTEMPLATE> </asp:repeater></form> </body> </HTML>
4.拖入用户控件Pager.ascx 5.copy如下cs代码
public class DataGridPage : System.Web.UI.Page if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TestGrid]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TestGrid] GO CREATE TABLE [dbo].[TestGrid] ( [UserID] [int] NOT NULL , [UserName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [State] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [Enabled] [bit] NULL ) ON [PRIMARY] GO
7.测试存储过程
create PROCEDURE tp_Fetch_List( @page_num INT, @row_in_page INT, @order_column VARCHAR(50), @row_total INT OUTPUT, @comb_condition VARCHAR(500) ) AS BEGIN SET NOCOUNT ON DECLARE @jcc_status INT, @sql NVARCHAR(4000), @row_ahead INT SET @jcc_status = 0 SET @row_ahead = (@page_num-1) * @row_in_page SET @sql='SELECT TOP '+ cast(@row_in_page as varchar(255)) + ' * FROM ( ' SET @sql = @sql + 'SELECT * FROM TestGrid ) as A where 1=1' IF LEN(@comb_condition)>0 SET @sql = @sql + ' AND (' + @comb_condition + ')' SET @sql = @sql + 'and UserID not in ( select UserID from (' SET @sql = @sql + 'SELECT TOP ' + cast(@row_ahead as varchar(255)) + ' * From (' SET @sql = @sql + 'SELECT * FROM TestGrid ) as A where 1=1' IF LEN(@comb_condition)>0 SET @sql = @sql + ' AND ( ' + @comb_condition + ' )' IF LEN(@order_column)>0 BEGIN SET @sql = @sql + ' ORDER BY ' + @order_column + ' ) AS B )' END ELSE BEGIN SET @sql = @sql + ' ) AS B )' END IF LEN(@order_column)>0 BEGIN SET @sql = @sql + ' ORDER BY ' + @order_column END print @sql EXEC (@sql) SET @sql= N'SELECT @row_total=COUNT(*) FROM (' SET @sql = @sql + 'SELECT * FROM TestGrid ) as A where 1=1' IF LEN(@comb_condition)>0 SET @sql = @sql + ' AND (' + @comb_condition + ')' print @sql EXEC sp_executesql @sql,N'@row_total INT OUT',@row_total OUT IF @@ERROR != 0 BEGIN SELECT @jcc_status = -98 END exit_bk: -- exit with MS SQL Server error IF @jcc_status = -98 BEGIN RAISERROR ('MS SQL Server error, please contact your system administrator.',16,1)WITH NOWAIT RETURN (@jcc_status) END -- normal exit RETURN (0) END GO -- declare @aa int -- exec tp_Fetch_List 1,10,'',@aa out ,'1=1' -- select @aa
8.源代码下载/Files/singlepine/DataGridPage.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: