2008-12-19 9 views
0

Je dois ajouter des liens "Suivant" et "Précédent" à une page Web affichant les messages dans l'ordre chronologique. Une table SQL contient le MessageNumber, l'objet et la date. Actuellement, je suis en utilisant une procédure stockée qui utilise la fonction ROW_NUMBER:Liens suivants et précédents utilisant Linq to SQL

with MessageList AS 
(
select msg_num, 
row_number() over (order by msg_date) as rownum 
from tblHeaders) 

SELECT 

     nextrow.msg_num AS NextMsg 
FROM 
     MessageList currow 
LEFT JOIN MessageList nextrow 
     ON currow.rownum = nextrow.rownum - 1 
LEFT JOIN MessageList prevrow 
     ON currow.rownum = prevrow.rownum + 1 
where currow.msg_num = @msgnum 

LINQ to SQL comment pourrais-je générer des liens vers la « Suivant » et « Précédent » nombre de messages étant donné le nombre de message en cours et où la table est trié par date ordre?

Répondre

1

Skip() et Take() peuvent être utilisés pour la fonctionnalité de pagination.

Par exemple:

Queryable<Customer> custQuery3 = 
    (from custs in db.Customers 
    where custs.City == "London" 
    orderby custs.CustomerID 
    select custs) 
    .Skip(1).Take(1); 

http://msdn.microsoft.com/en-us/library/bb386988.aspx