`
ch.net
  • 浏览: 112329 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分页控件、存储过程 URL传参数

    博客分类:
  • SQL
阅读更多

存储过程

 

USE [TicketCenter]
GO
/****** Object:  StoredProcedure [dbo].[W_TicketCenter_TicketsGet]    Script Date: 06/11/2008 10:16:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- 获取所有Ticket
ALTER proc [dbo].[W_TicketCenter_TicketsGet]
@CategoryId int = 0,
@Subject nvarchar(500) = '',
@CustomerId int = 0,
@IsUnRead int = 0, --是否未读  0获取所有的  1获取未读的
@PageIndex int = 0,
@PageSize int = 20
as
begin
 declare
  @sql nvarchar(4000),  
  @CountSql nvarchar(2000),
  @RowCount int,
  @PageCount int,
   @start int, --每页的起始位置
  @end int,  --每页的终止位置
  @p1 INT
 
  set @sql = '
   select a.id,a.subject,a.updatetime,b.Name as categoryName,
   (
    select count(Id) from C_TicketItem
    where C_TicketItem.IsRead = 0 and C_TicketItem.[Status] = 2
    and C_TicketItem.TicketId = a.Id and C_TicketItem.Type = 2
   ) as UnReadCount
   ,
   ( 
    case when
    exists
    (
     select Id from C_TicketItem where C_TicketItem.TicketId = a.Id  and C_TicketItem.id in
     (select TicketItemId from C_TicketAttachment)
    )
    then 1
    else
    0
    end
   ) as IsHasAtt,
   ROW_NUMBER() OVER(order by a.Id desc) as rownumber
   from C_Ticket a
   left join C_TicketCategory b
   on a.CategoryId = b.Id
   where a.IsDeleted = 0
  '
  
  if @CategoryId > 0
  begin
   set @sql = @sql + '
    and a.CategoryId = ' + str(@CategoryId) + '
   '
  end
  
  if @Subject > ''
  begin
   set @sql = @sql + '
    and a.Subject like ''%'+ @Subject +'%''
   '
  end

  

-- -- 总记录数
-- Set @CountSql = 'SELECT @RowCount = count(1) FROM (' + @sql + ') as items '
-- EXEC sp_executesql  @CountSql, N'@RowCount INT OUT', @RowCount OUT
--
-- IF ISNULL(@PageSize, 0) < 1
--  SET @PageSize = 30
-- SET @PageCount = (@RowCount + @PageSize - 1) / @PageSize
-- IF ISNULL(@PageIndex, 0) < 1
--  SET @PageIndex = 1
-- ELSE IF ISNULL(@PageIndex, 0) > @PageCount
--  SET @PageIndex = @PageCount
--
-- -- 起始页
-- set @start = (@PageIndex-1)*@PageSize + 1
-- -- 结束页
-- set @end = @PageIndex*@PageSize
-- 
-- -- 返回页数和记录条数
--    select @PageCount as [PageCount],@RowCount as [RowCount]
--
-- set @sql = 'select * from (' + @sql + ') as items where RowNumber >=  ' + str( @start ) + ' and RowNumber <= ' + str( @end ) 
--  exec(@sql)

 EXEC sp_cursoropen
  @cursor = @p1 OUTPUT,
  @stmt = @sql,
  @scrollopt = 1,
  @ccopt = 1,
  @rowcount = @RowCount OUTPUT

 IF ISNULL(@PageSize, 0) < 1
  SET @PageSize = 30
 SET @PageCount = (@RowCount + @PageSize - 1) / @PageSize
 IF ISNULL(@PageIndex, 0) < 1
  SET @PageIndex = 1
 ELSE IF ISNULL(@PageIndex, 0) > @PageCount
  SET @PageIndex = @PageCount
 set @start  = (@PageIndex-1)*@PageSize + 1
 set @end = @PageIndex*@PageSize

 set @sql = 'select * from (' + @sql + ') as items where RowNumber >=  ' + str( @start ) + ' and RowNumber <= ' + str( @end ) 
  exec(@sql)
    SELECT @RowCount

end

 

 

页面中调用:

<%@ Register TagPrefix="PH" Namespace="分页控件类的路径 如 项目--文件夹--文件名 PandaHall.SiteManager.Common.Pager "

   Assembly="分页控件类被编译到的程序集名称,不能带后辍名 如 PandaHall.SiteManager " %>

 

<PH:Pager ID="pager" runat="server" ItemSize="30" OnPageIndexChanged="pager_PageIndexChanged" /> 

 

 

CS中调用

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using PandaHall.SiteManagerLogic;
using PandaHall.SiteManager.Common;

namespace PandaHall.SiteManager.Promotion
{
    public partial class ProductList : PageBase
    {

        /// <summary>
        /// 页码
        /// </summary>
        public int pageNo = 0;
 
        protected void Page_Load(object sender, EventArgs e)
        {
           
        } 

        // 分页
        protected void pager_PageIndexChanged(object sender, PandaHall.SiteManager.Common.Pager.PageChangedEventArgs e)
        {
            BindPromotionProductList();
        }

        #region Method

        /// <summary>
        /// 绑定促销活动的商品列表
        /// </summary>
        private void BindPromotionProductList()
        {
            // 商品名称
            string ProductName = this.txtProductName.Text.Trim();
            // 商品状态
            int State = int.Parse(this.ddlState.SelectedValue);
            // 已售数量
            decimal SalesNum = decimal.Parse(this.ddlSalesNum.SelectedValue);

            int PageCount = 0;
            pageNo = this.pager.PageNo;
            int PageSize = int.Parse(ConfigurationManager.AppSettings["size"].ToString());

            this.gvProduct.DataSource = PromotionProductDAL.GetPromotionProductList(Pid, ProductName, State, SalesNum, this.pager.PageNo + 1, PageSize, out PageCount);
            this.gvProduct.DataBind();

            this.pager.PageCount = PageCount;           
        }
     } 
}

 

附件:分页类

分享到:
评论

相关推荐

    九头鸭分页控件 Url分页方式

    九头鸭分页控件 DataPage的主要功能: 1、支持通过Url进行分页: DataPage除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户...

    C#自定义分页控件

    三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的显示方式与该控件无关,所以需要手写数据连接方法来配合, 四、结合TOP 。。。NOT IN 的通用存储过程分页方法使用AspNetPager...

    .net50个常用方法简单华丽的分页控件功能大的分页控件 50个实用方法

    ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///...

    九头鸭.net分页控件 v1.1.rar

    九头鸭分页控件 DataPage的主要功能: 1、支持通过Url进行分页: DataPage除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户...

    功能非常好自主研发的自定义Repeater分页控件

    功能非常好自主研发的自定义Repeater分页控件,包括目前较为流行的20多种分页样式,也可定义无刷新分页,支持简洁分页,调用存储过程分页,速度很好,是您页面上的最佳选择,本人还有许多其它的一些控件,如有需要可...

    asp.net 分页控件封装后的 更加方便于分页 存储过程分页

    asp.net和分页控件封装后的分页组件,dll 今天发布的是升级的版本,解决之前不能按需加载的bug, 现在可以设置获取的字段,是分页更加方便快捷,也谢谢分页控件大哥提供的控件,才能让我进行整合的。多谢。。 多多...

    九头鸭分页控件源码

    九头鸭分页控件 DataPage的主要功能: 1、支持通过Url进行分页: DataPage除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户...

    九头鸭.net分页控件DataPage.rar

    九头鸭.net分页控件DataPage的主要功能: 1、支持通过Url进行分页: DataPage除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许...

    DevPage2005 分页控件Demo源码

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    DevPage2005 分页控件Demo源码 只要2分

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    漂亮好用的分页控件源码

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    DevPager 多功能支持长文章分页控件 v1.0 Beta.rar

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本 控件支持不...

    Asp.Net DevPager Beta 1.0 多功能支持长文章分页控件

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    net实用类50超级实用方法赠分页分页控件强大的分页

    ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///DataBindRadioButtonList...

    DevPagerSample分页控件

    *************DevPage2005 1.0 Beta版 可视化分页控件调用实例源码************** /**************************功能特点*********************************/ 支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储...

    DevPager Beta 1.0 多功能支持长文章分页控件.rar

    支持长文章分页/Access/Sql2000/Oracle/MySql/DB2/存储过程/支持不产生ViewState/图片分页/URL重写/Xml 样式自己用CSS定,可以随意改!对于Web2.0 页面构架师来说,追求代码完美,也许这是你最好的选择~,本控件支持不...

    分页AspNetPager

    三、AspNetPager分页控件本身并不显示任何数据,而只显示分页导航元素,数据在页面上的显示方式与该控件无关,所以需要手写数据连接方法来配合, 四、结合TOP 。。。NOT IN 的通用存储过程分页方法使用AspNetPager...

Global site tag (gtag.js) - Google Analytics