要SQL查詢語句前,就須把上一篇和下一篇的文章ID找出來,下面的SQL語句有些字段已經(jīng)省略。 ![]() SELECT [ArticleId],[Subject], (SELECT MAX([ArticleId]) FROM [dbo].[Article] AS a1 WHERE a1.[ArticleId] < a.[ArticleId]) AS [PrevArticleId], (SELECT MIN([ArticleId]) FROM [dbo].[Article] AS a1 WHERE a1.[ArticleId] > a.[ArticleId]) AS [NextArticleId] FROM [dbo].[Article] AS a
執(zhí)行結果:
數(shù)據(jù)庫方面完成了,接下來在asp.net實現(xiàn),可以首先創(chuàng)建一個用戶控件: ArticleNavigation.ascx: ![]() <%@ Control Language="VB" AutoEventWireup="false" CodeFile="ArticleNavigation.ascx.vb" Inherits="SiteControls_ArticleNavigation" %> 上一篇:<asp:HyperLink ID="HyperLinkPrev" runat="server" Target="_blank"></asp:HyperLink> <br /> 下一篇:<asp:HyperLink ID="HyperLinkNext" runat="server" Target="_blank"></asp:HyperLink>
ArticleNavigation.ascx.vb: ![]() Imports System.Data
Imports Insus.NET Partial Class SiteControls_ArticleNavigation Inherits System.Web.UI.UserControl Dim objArticle As New Article() Private _PrevArticleId As String Private _NextArticleId As String Public WriteOnly Property PrevArticleId As String Set(value As String) _PrevArticleId = value End Set End Property Public WriteOnly Property NextArticleId As String Set(value As String) _NextArticleId = value End Set End Property Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Data_Binding() End Sub Private Sub Data_Binding() If String.IsNullOrEmpty(_PrevArticleId) Then Me.HyperLinkPrev.Text = "無" Else Dim objPrevDataRow As DataRow = objArticle.GetArticleByPrimaryKey(_PrevArticleId).Rows(0) Me.HyperLinkPrev.Text = objPrevDataRow("Subject") Me.HyperLinkPrev.NavigateUrl = "~/ArticleView.aspx?ID=" & _PrevArticleId End If If String.IsNullOrEmpty(_NextArticleId) Then Me.HyperLinkNext.Text = "無" Else Dim objNextDataRow As DataRow = objArticle.GetArticleByPrimaryKey(_NextArticleId).Rows(0) Me.HyperLinkNext.Text = objNextDataRow("Subject") Me.HyperLinkNext.NavigateUrl = "~/ArticleView.aspx?ID=" & _NextArticleId End If End Sub End Class
在文章瀏覽的aspx中,用戶控控件需要傳入前一篇的文章ID和下一篇的文章ID,下面的PrevArticleId和NextArticleId兩個都是用戶控件的public的屬性。 ![]() <uc1:ArticleNavigation ID="ArticleNavigation1" runat="server" PrevArticleId='<%# Eval("PrevArticleId")%>' NextArticleId='<%# Eval("NextArticleId")%>' />
|
|
來自: 悟靜 > 《.net和asp.net》