maverick786us
September 26th, 2007, 05:04 AM
I am using this procedure to implement pageing and sorting in my gridview
ALTER PROC [dbo].[dbWBS_usp_DisplayCertificatesDetails]
(
@PageNum BIGINT=1,
@PageSize BIGINT=10,
@OrderBy VARCHAR(50)='Certificate_Id',
@TotalRowsNum BIGINT=0 OUTPUT
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Query VARCHAR(1024);
SET @Query = 'SELECT * FROM
(
SELECT ''ID1'' = ROW_NUMBER() OVER (ORDER BY '+ @OrderBy +'),Certificate_ID, Issue_Authority, Cert_Type,
Req_Authority, CONVERT(VARCHAR(12), Install_Date, 109) AS Install_Date,
CONVERT(VARCHAR(12), Expire_Date, 109) AS Expire_Date,
CONVERT(VARCHAR(12), Notify_Date, 109) AS Notify_Date,
(SELECT Dept_name FROM tbl_Department_Master where dept_id = Department) as DepartmentName
FROM tbl_Certificate_Master
WHERE IsDelete = 0
)
AS Temp WHERE ID1 BETWEEN '+CAST(((@PageNum - 1) * @PageSize + 1) AS VARCHAR(10)) +' AND '+
CAST((@PageNum * @PageSize)AS VARCHAR(10)) + ''
-- Execute the Query
EXEC (@Query)
-- Return Total Records Numbers
SELECT @TotalRowsNum=COUNT(Certificate_ID) FROM tbl_Certificate_Master WHERE IsDelete = 0
END
The paging is working absolutely fine but while sorting, it sorts the entire record instead of the record displayed in the page. Can someone help me in solving this??
ALTER PROC [dbo].[dbWBS_usp_DisplayCertificatesDetails]
(
@PageNum BIGINT=1,
@PageSize BIGINT=10,
@OrderBy VARCHAR(50)='Certificate_Id',
@TotalRowsNum BIGINT=0 OUTPUT
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @Query VARCHAR(1024);
SET @Query = 'SELECT * FROM
(
SELECT ''ID1'' = ROW_NUMBER() OVER (ORDER BY '+ @OrderBy +'),Certificate_ID, Issue_Authority, Cert_Type,
Req_Authority, CONVERT(VARCHAR(12), Install_Date, 109) AS Install_Date,
CONVERT(VARCHAR(12), Expire_Date, 109) AS Expire_Date,
CONVERT(VARCHAR(12), Notify_Date, 109) AS Notify_Date,
(SELECT Dept_name FROM tbl_Department_Master where dept_id = Department) as DepartmentName
FROM tbl_Certificate_Master
WHERE IsDelete = 0
)
AS Temp WHERE ID1 BETWEEN '+CAST(((@PageNum - 1) * @PageSize + 1) AS VARCHAR(10)) +' AND '+
CAST((@PageNum * @PageSize)AS VARCHAR(10)) + ''
-- Execute the Query
EXEC (@Query)
-- Return Total Records Numbers
SELECT @TotalRowsNum=COUNT(Certificate_ID) FROM tbl_Certificate_Master WHERE IsDelete = 0
END
The paging is working absolutely fine but while sorting, it sorts the entire record instead of the record displayed in the page. Can someone help me in solving this??