10/10/2018, 09:54

Code phân trang asp.net

Các bạn cho mình hỏi
Từ trước giờ mình viết phân trang toàn bằng datalist thấy chạy cũng tạm ổn.

Nhưng datalist có nhiều hạn chế.
Mình đã thử viết phân trang bằng code HTM nhưng vẫn chưa được

Bạn nào có bài VD nhỏ nhỏ về phần phân trang viết HTM(không dùng datalist) không chia sẻ giúp mình với
cayriver viết 12:09 ngày 10/10/2018
Hiện nay nhiều người đã không còn dùng phân trang như bạn nói nữa mà người ta phân trang ngay trong câu lệnh sql luôn.
PHP Code:
ALTER PROCEDURE ***91;dbo***93;.***91;Products_GetAndPaging***93;
    @
CategroryId int,
    @
Language  varchar (5),
    @
OrderBy int,
    @
PageSize int,
       @
PageIndex int,        
       @
Count int output
AS
SET @PageIndex = @PageIndex -1
DECLARE @SkippedRows int SET @SkippedRows =  @PageIndex * @PageSize
DECLARE @strSQL varchar(4000)

DECLARE @
Filter    varchar(200
SET @Filter ' CategoryId = '''+CAST(@CategroryId AS  varchar)+''' AND Status = 0 AND  Language = ''' + @Language  ''' '

DECLARE @Order   varchar(200

if( @
OrderBy 1SET @Order ' ORDER BY Price ASC '
if( @OrderBy 2SET @Order ' ORDER BY Price DESC ' 
if( @OrderBy 3SET @Order ' ORDER BY ViewCount ASC ' 
if( @OrderBy 4SET @Order ' ORDER BY ViewCount DESC ' 
if( @OrderBy 5SET @Order ' ORDER BY CreatedDate ASC ' 
if( @OrderBy 6SET @Order ' ORDER BY CreatedDate DESC ' 


DECLARE @sqlCount nvarchar(1000)
SET @sqlCount N'SELECT @Count = COUNT(Id) FROM Products WHERE ' + @Filter
EXEC sp_executesql
     
@query = @sqlCount,
     @
params N'@Count INT OUTPUT',
     @
Count = @Count OUTPUT


IF (@PageIndex 0)
SET @strSQL 'SELECT * FROM Products ' +
    
' WHERE Id IN ' +
    
' (SELECT TOP ' +  CAST(@PageSize AS  varchar) +' Id FROM Products ' +
    
' WHERE ' + @Filter  + @Order ')' + @Order 
ELSE
 
SET @strSQL 'SELECT * FROM Products ' +
    
' WHERE Id IN ' +
    
'    (SELECT TOP ' +  CAST(@PageSize AS  varchar) +' Id FROM Products ' +
    
'    WHERE Id NOT IN ' +
    
'        (SELECT TOP ' CAST(@SkippedRows AS varchar) + '  Id FROM Products ' +
    
'        WHERE ' + @Filter + @Order ' )' +            
    
'    AND ' + @Filter + @Order ' ) ' + @Order 
EXEC
( @strSQL)
PRINT (@
strSQL)
RETURN 
freshgraduate09 viết 11:58 ngày 10/10/2018
đúng vậy, phân trang trong câu sql luôn sẽ tối ưu về tốc độ, tiết kiệm băng thông. Tuy nhiên code của bạn viết chưa hay, bạn có thể vào codeproject, trên đó hướng dẫn 8 cách phân trang trên tsql/sqlserver
trinhdiep viết 12:09 ngày 10/10/2018
tôi thì chưa xem trong codeproject nhưng tôi luôn chọn cách viết store
tuanhaikh viết 12:07 ngày 10/10/2018
codeproject nằm ở chổ nào vậy bạn.
Nếu có hướng dẫn thì hay hơn chứ xem code sql không không hiểu quá vả lại mình cũng hơi ngở ngàn 1 chút do mình chưa viết code cái này bao giờ mình toàn làm datalist không hà
vidaxua0501 viết 12:01 ngày 10/10/2018
Được gửi bởi freshgraduate09
đúng vậy, phân trang trong câu sql luôn sẽ tối ưu về tốc độ, tiết kiệm băng thông. Tuy nhiên code của bạn viết chưa hay, bạn có thể vào codeproject, trên đó hướng dẫn 8 cách phân trang trên tsql/sqlserver
nhưng mà copy đoạn đó vào đâu hả bạn..phải copy vào chỗ HTML trong thư mục quản lý diễn đàn không
(đừng nói mình ngu nha..bình thường thôi)
tuanhaikh viết 12:01 ngày 10/10/2018
có ai có đường link hướng dẫn cái này không ta
freshgraduate09 viết 12:06 ngày 10/10/2018
cac ban search voi tu khóa: paging trên codeproject.

giờ cách này phổ biến lắm, đâu còn lạ lẫm gì nữa

tôi thì chưa xem trong codeproject nhưng tôi luôn chọn cách viết store
cũng là viết store, tsql batch cũng có the đặt vào store. 8 cách phân trang mà codeproject hướng dẫn là 8 kỹ thuật khác nhau, chứ ko lien quan gì store hay ko store
vidaxua0501 viết 11:54 ngày 10/10/2018
có ai cho mình một bản gồm các bước rõ ràng không...mình chả hiểu gì cả...codeproject là ở đâu...mình mới tập tững bước...hỏi thế này ngại quá nhưng cũng nhờ các bạn trong ddth giúp đỡ với nha...hihi
thuyduongcd viết 12:05 ngày 10/10/2018
codeproject nằm trong FF với IE chứ đâu. Mở FF lên gõ vào codeproject là thấy ngay
Bài liên quan
0