国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ASP.net文章管理系統(tǒng):系統(tǒng)設(shè)計與編碼(下
ASP.net文章管理系統(tǒng):系統(tǒng)設(shè)計與編碼。

  相關(guān)文章:ASP.net文章管理系統(tǒng):系統(tǒng)設(shè)計與編碼(上)

    14.3.4 ArticlesList.aspx的設(shè)計與編碼

    ArticlesList.aspx提供了兩個功能:

    (1)根據(jù)傳入?yún)?shù)列出該類別的文章列表;

    (2)根據(jù)傳入?yún)①悪z索出符合條件的文章列表。

    這兩個功能的實現(xiàn)是有后臺邏輯程序根據(jù)傳入的參數(shù)類型判斷,然后為用戶提供不同的服務。

    ArticlesList.aspx的HTML代碼如下:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="ArticlesList.aspx.vb" Inherits="TheArticleSYS.ArticlesList"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <meta name="vs_snapToGrid" content="False">
  <title>ArticlesList</title>
  <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
  <meta content="JavaScript" name="vs_defaultClientScript">
  <meta content=" </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <center>
    <TABLE id="Table1" style="BORDER-RIGHT: #009999 1px solid; BORDER-TOP: #009999 1px solid; BORDER-LEFT: #009999 1px solid; BORDER-BOTTOM: #009999 1px solid"
     cellSpacing="0" cellPadding="0" width="760" border="1">
     <TR>
      <TD><IMG src="images/bg12.jpg"></TD>
     </TR>
     <TR>
      <TD><FONT face="宋體"></FONT></TD>
     </TR>
     <TR>
      <TD>
       <TABLE id="Table2" style="BORDER-RIGHT: #006600 1pt solid; BORDER-TOP: #006600 1pt solid; BORDER-LEFT: #006600 1pt solid; BORDER-BOTTOM: #006600 1pt solid"
        cellSpacing="0" cellPadding="0" width="762" border="0">
        <asp:datalist id="DataList1" runat="server" BorderColor="#009999" BorderWidth="1pt">
         <AlternatingItemStyle BackColor="Azure"></AlternatingItemStyle>
         <HeaderStyle Font-Size="Larger" Font-Bold="True" ForeColor="Azure" BackColor="#009999"></HeaderStyle>
         <ItemTemplate>
          <tr>
           <TD align="left" style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; BACKGROUND-COLOR: darkgray">標題:
            <a  href='<%# "TheArticle.aspx?aid="&databinder.eval(container.dataitem,"id") %>' target=_blank >
             <%# databinder.eval(container.dataitem,"title") %>
            </a>
           </TD>
          </tr>
          <tr>
           <TD align="left" style="FONT-SIZE: 11pt; BACKGROUND-COLOR: lightgrey">
            id:<%# databinder.eval(container.dataitem,"id") %>
            作者:<%# databinder.eval(container.dataitem,"writer") %>
            ---發(fā)布日期:<%# databinder.eval(container.dataitem,"sdate") %>
            ---瀏覽次數(shù):<%# databinder.eval(container.dataitem,"views") %>
           </TD>
          </tr>
          <tr>
           <TD align="left" style="FONT-SIZE: 11pt; BACKGROUND-COLOR: lightgrey">關(guān)鍵字[<%# databinder.eval(container.dataitem,"keyword") %>]</TD>
          </tr>
          <tr>
           <TD align="left" style="TEXT-INDENT: 10pt; BACKGROUND-COLOR: seashell">
            內(nèi)容摘要:<br>
            ...<%# mid(databinder.eval(container.dataitem,"content"),50,200) %>...<br>
           </TD>
          </tr>
         </ItemTemplate>
        </asp:datalist></TABLE>
      </TD>
     </TR>
     <TR>
      <TD><FONT face="宋體"><asp:label id="Label1" runat="server"></asp:label><asp:linkbutton id="LinkButton4" runat="server">第一頁</asp:linkbutton>
        <asp:linkbutton id="LinkButton1" runat="server">上一頁</asp:linkbutton><asp:linkbutton id="LinkButton2" runat="server">下一頁</asp:linkbutton>
        <asp:linkbutton id="LinkButton3" runat="server">末一頁</asp:linkbutton></FONT></TD>
     </TR>
    </TABLE>
   </center>
  </form>
 </body>
</HTML>

    ArticlesList.aspx.vb的后臺邏輯代碼如下:

'---code begin---
Imports System.Web
Imports System.Data
Public Class ArticlesList
    Inherits System.Web.UI.Page
#Region " Web 窗體設(shè)計器生成的代碼 "
     '此處省略了設(shè)計器生成的無關(guān)代碼,以節(jié)省篇幅
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的用戶代碼
        If Not Page.IsPostBack Then
            viewstate("pagenow") = 0
            Dim akinds As String = Request.Params("akind")
            Dim seekid As String = Request.Params("seekid")
            Dim infor As String = Request.Params("infor")
            Dim moreid As String = Request.Params("moreid")
            If moreid = "" Then
                If akinds = "" Or seekid = "" Or infor = "" Then
                    Response.Redirect("default.aspx")
                Else
                    If akinds = "-1" Then
                        mysql = " where  " + seekid + " like '%" + infor + "%'"
                    Else
                        mysql = " where akinds=" + akinds + "  and " + seekid + " like '%" + infor + "%' "
                    End If
                End If
            Else
                mysql = " where akinds=" + Request.Params("moreid")
            End If
            getdatainfor()
            getdata()
        End If
End Sub
    '獲取符合條件的記錄條數(shù)
    Sub getdatainfor()
        mycon.Open()
        Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("select count(*) from articles  " & mysql, mycon)
        viewstate("pagecount") = mycmd.ExecuteScalar
        mycon.Close()
        If viewstate("pagecount") = 0 Then
            Response.Write("<script>alert('\n對不起,沒有查找到符合條件的文章\n');</script>")
            Exit Sub
        End If
End Sub
    '獲取記錄信息
    Sub getdata()
        Dim mycmd As OleDb.OleDbDataAdapter
        Dim dt As DataSet = New DataSet
        mycmd = New OleDb.OleDbDataAdapter(" select * from articles" & mysql & " order by id desc ", mycon)
        '每頁顯示6篇文章記錄
        mycmd.Fill(dt, viewstate("pagenow"), 6, "plist")
        DataList1.DataSource = dt.Tables("plist").DefaultView
        DataList1.DataBind()
        Label1.Text = "共有[<font color=red> " & viewstate("pagecount") & "</font>]篇文章"
        Label1.Text += ",當前為第[<font color=red>" & (viewstate("pagenow") + 1)
        Label1.Text += "</font>]頁/共[<font color=red>" & (viewstate("pagecount") \ 6 + 1) & "</font>]頁"
        mycon.Close()
End Sub
    '上一頁, 即:頁碼減1
Private Sub LinkButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
        If viewstate("pagenow") > 0 Then
            viewstate("pagenow") -= 1
            getdatainfor()
            getdata()
        End If
End Sub
    '下一頁, 即:頁碼加1
Private Sub LinkButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton2.Click
        If viewstate("pagenow") < viewstate("pagecount") \ 6 Then
            viewstate("pagenow") += 1
            getdatainfor()
            getdata()
        End If
End Sub
    '第一頁,即:頁碼為0
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton4.Click
        If viewstate("pagenow") <> 0 Then
            viewstate("pagenow") = 0
            getdatainfor()
            getdata()
        End If
End Sub
    '最后一頁
Private Sub LinkButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton3.Click
        If viewstate("pagenow") < viewstate("pagecount") \ 6 Then
            viewstate("pagenow") = viewstate("pagecount") \ 6
            getdatainfor()
            getdata()
        End If
End Sub
End Class
'---code end ----

    編譯運行后,結(jié)果如圖14.12所示


圖14.12ArticlesList.aspx運行結(jié)果

  14.3.5 TheArticle.aspx和Tealker.ascx的設(shè)計與編碼

  TheArticle.aspx是顯示文章具體內(nèi)容的頁面,根據(jù)傳入的文章ID,從數(shù)據(jù)庫中檢索出文章,并把內(nèi)容顯示出來。并利用Tealker.ascx把有關(guān)該文章的評論顯示到頁面中,同時為瀏覽者提供一個發(fā)表評論的入口。

  TheArticle.aspx的HTML代碼如下:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="TheArticle.aspx.vb" Inherits="TheArticleSYS.TheArticle"%>
<%@ Register TagPrefix="uc1" TagName="tealker" Src="tealker.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <title runat="server" id="Mytitle"></title>
  <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
  <meta content="JavaScript" name="vs_defaultClientScript">
  <meta content="
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <center>
    <TABLE id="Table1" style="BORDER-RIGHT: #739cd6 1pt solid; BORDER-TOP: #739cd6 1pt solid; BORDER-LEFT: #739cd6 1pt solid; BORDER-BOTTOM: #739cd6 1pt solid"
     cellSpacing="0" cellPadding="0" width="762" background="images/bg10.gif" border="0">
     <TR>
      <TD></TD>
      <TD align="right">
       <TABLE id="Table2" style="BORDER-RIGHT: #739cd6 1pt solid; BORDER-TOP: #739cd6 1pt solid; BORDER-LEFT: #739cd6 1pt solid; WIDTH: 680px; BORDER-BOTTOM: #739cd6 1pt solid; HEIGHT: 50px"
        cellSpacing="0" cellPadding="0" width="680" border="0">
        <TR>
         <TD style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; COLOR: white; HEIGHT: 50px; BACKGROUND-COLOR: #739cd6"
          align="center"><asp:label id="Label1" runat="server">Label</asp:label></TD>
        </TR>
        <TR>
         <TD style="BORDER-RIGHT: #739cd6 1pt solid; BORDER-TOP: #739cd6 1pt solid; FONT-SIZE: 10pt; BORDER-LEFT: #739cd6 1pt solid; BORDER-BOTTOM: #739cd6 1pt solid; HEIGHT: 30px; BACKGROUND-COLOR: azure"
          align="center"><asp:label id="Label2" runat="server">Label</asp:label></TD>
        </TR>
        <TR>
         <TD style="BORDER-RIGHT: #739cd6 1pt solid; BORDER-TOP: #739cd6 1pt solid; FONT-SIZE: 10pt; BORDER-LEFT: #739cd6 1pt solid; BORDER-BOTTOM: #739cd6 1pt solid; HEIGHT: 30px; BACKGROUND-COLOR: azure"
          align="center"><asp:label id="Label4" runat="server">Label</asp:label></TD>
        </TR>
        <TR>
         <TD style="FONT-SIZE: 11pt; LINE-HEIGHT: 20pt"><asp:label id="Label3" runat="server">Label</asp:label></TD>
        </TR>
        <TR>
         <TD style="BORDER-BOTTOM: #009999 thin solid"><br>
         </TD>
        </TR>
        <TR>
         <TD><br>
         </TD>
        </TR>
        <TR>
         <TD align="center"><uc1:tealker id=Tealker1 runat="server" aid='<%# Request.Params("aid")%>'></uc1:tealker></TD>
        </TR>
       </TABLE>
       <P></P>
      </TD>
     </TR>
    </TABLE>
   </center>
  </form>
 </body>
</HTML>

  TheArticle.aspx.vb的邏輯代碼如下:

'---code begin---
Public Class TheArticle
    Inherits System.Web.UI.Page
#Region " Web 窗體設(shè)計器生成的代碼 "
      '此處省略了設(shè)計器生成的無關(guān)代碼,以節(jié)省篇幅
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的用戶代碼
        If Request.Params("aid") <> "" Then
            mysql = "select * from articles where id=" + Request.Params("aid")
            mycon.Open()
            Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
            Dim myreader As OleDb.OleDbDataReader
            myreader = mycmd.ExecuteReader
            Do While myreader.Read
                '顯示文章標題
                Label1.Text = myreader("title")
                '顯示文章屬性
                Label2.Text = "-----作者:" & myreader("writer") & "   文章出自:" & myreader("fw") & "   發(fā)布時間:" & myreader("sdate")
                Label2.Text += "   查看次數(shù):" & myreader("views")
                '顯示關(guān)鍵字
                Label4.Text = "關(guān)鍵字 [" & myreader("keyword") & "]"
                '顯示文章內(nèi)容
                Label3.Text = myreader("content")
                '動態(tài)網(wǎng)頁標題
                Mytitle.InnerText = myreader("title") & "-----叮咚文章管理系統(tǒng)"
            Loop
            myreader.Close()
            updateviews(Request.Params("aid"))
        End If
End Sub
    '更新文章瀏覽次數(shù)
    Sub updateviews(ByVal aid As String)
        mysql = "update articles set views=views+1 where id=" + aid
        Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
        mycmd.ExecuteNonQuery()
        mycon.Close()
End Sub
End Class
'--code end--

  Tealker.ascx的HTML代碼如下:

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="Tealker.ascx.vb" Inherits="TheArticleSYS.tealker" TargetSchema="<P>
 <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="679" border="0" style="BORDER-RIGHT: #009999 1px solid; BORDER-TOP: #009999 1px solid; BORDER-LEFT: #009999 1px solid; BORDER-BOTTOM: #009999 1px solid; HEIGHT: 91px">
  <TR>
   <TD align="center" colspan="3" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; COLOR: white; BACKGROUND-COLOR: #009999">該文章的評論
   </TD>
  </TR>
  <asp:repeater id="Repeater1" runat="server">
   <ItemTemplate>
    <TR style="BACKGROUND-COLOR: #f0ffff">
     <TD style="BORDER-RIGHT: #009900 1px solid; BORDER-TOP: #009900 1px solid; FONT-SIZE: 10pt; BORDER-LEFT: #009900 1px solid; WIDTH: 150px; BORDER-BOTTOM: #009900 1px solid">
      評論人:<%# databinder.eval(container.dataitem,"talker") %>
     </TD>
     <TD style="BORDER-RIGHT: #009900 1px solid; BORDER-TOP: #009900 1px solid; FONT-SIZE: 10pt; BORDER-LEFT: #009900 1px solid; WIDTH: 200px; BORDER-BOTTOM: #009900 1px solid">
      評論日期<%# databinder.eval(container.dataitem,"tdate") %>
     </TD>
     <TD style="BORDER-RIGHT: #009900 1px solid; BORDER-TOP: #009900 1px solid; FONT-SIZE: 10pt; BORDER-LEFT: #009900 1px solid; BORDER-BOTTOM: #009900 1px solid">
      電郵<%# databinder.eval(container.dataitem,"email") %>
     </TD>
    </TR>
    <TR>
     <TD colspan="3" style="BORDER-RIGHT: #009999 1pt solid; BORDER-TOP: #009999 1pt solid; FONT-SIZE: 10pt; BORDER-LEFT: #009999 1pt solid; BORDER-BOTTOM: #009999 1pt solid">
      <%# databinder.eval(container.dataitem,"content") %>
     </TD>
    </TR>
   </ItemTemplate>
   <SeparatorTemplate>
    <TR>
     <TD style="BORDER-BOTTOM: lightsalmon 1px solid">
     </TD>
    </TR>
   </SeparatorTemplate>
  </asp:repeater>
  <TR>
   <TD colspan="3">
   </TD>
  </TR>
 </TABLE>
</P>
<TABLE id="Table2" style="BORDER-RIGHT: #009999 1pt solid; BORDER-TOP: #009999 1pt solid; BORDER-LEFT: #009999 1pt solid; BORDER-BOTTOM: #009999 1pt solid; HEIGHT: 242px"
 cellSpacing="0" cellPadding="0" width="679" border="0">
 <TR>
  <TD align="center" style="FONT-WEIGHT: bold; FONT-SIZE: 14pt; COLOR: white; BACKGROUND-COLOR: #009999"> 
   發(fā)表我對該文的評論
  </TD>
 </TR>
 <TR>
  <TD style="FONT-SIZE: 11pt; BACKGROUND-COLOR: azure">我的昵稱
   <asp:textbox id="TextBox1" runat="server" BorderStyle="Groove" BorderColor="#E0E0E0"></asp:textbox>電郵
   <asp:textbox id="TextBox2" runat="server" BorderStyle="Groove" BorderColor="#E0E0E0"></asp:textbox><asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" Font-Size="X-Small"
    ErrorMessage="昵稱不能為空!"></asp:requiredfieldvalidator><asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" Font-Size="X-Small"
    ErrorMessage="電郵不能為空!"></asp:requiredfieldvalidator></TD>
 </TR>
 <TR>
  <TD style="HEIGHT: 131px">內(nèi)容
   <asp:requiredfieldvalidator id="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" Font-Size="X-Small"
    ErrorMessage="評論內(nèi)容不能為空!"></asp:requiredfieldvalidator><br>
   <asp:textbox id="TextBox3" runat="server" Height="114px" Width="624px" TextMode="MultiLine"></asp:textbox></TD>
 </TR>
 <TR>
  <TD><asp:button id="Button1" runat="server" Text="提交"></asp:button></TD>
 </TR>
</TABLE>

  Tealker.ascx.vb的邏輯代碼如下:

'---code begin--
Imports System.Web.Configuration
Public Class tealker
    Inherits System.Web.UI.UserControl
#Region " Web 窗體設(shè)計器生成的代碼 "
      '此處省略了設(shè)計器生成的無關(guān)代碼,以節(jié)省篇幅
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的用戶代碼
        aid = Request.Params("aid")
        If aid <> "" Then
            getdata()
        End If
  
End Sub
    ' 顯示文章評論信息
    Sub getdata()
        Dim constr As String = ConfigurationSettings.AppSettings("constr") & Server.MapPath(".") & ConfigurationSettings.AppSettings("dbs")
        Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(constr)
        If Not Page.IsPostBack Then
            mysql = "select * from talks where articleid=" + Request.Params("aid") + " order by tdate asc"
            Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(mysql, mycon)
            Dim dt As DataSet = New DataSet
            mycmd.Fill(dt)
            Repeater1.DataSource = dt.Tables(0)
            Repeater1.DataBind()
        End If
End Sub
    '提交文章評論內(nèi)容
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim constr As String = ConfigurationSettings.AppSettings("constr") & Server.MapPath(".") & ConfigurationSettings.AppSettings("dbs")
        Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(constr)
       If Page.IsValid Then
            mysql = "insert into talks(articleid,talker,email,content) values(" + Request.Params("aid") + ",'" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text.Replace(Chr(10), "<br>") + "')"
            mycon.Open()
            Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
            mycmd.ExecuteNonQuery()
            Response.Write("<script>alert('恭喜您,評論成功!');</script>")
            mycon.Close()
            Response.Redirect("Thearticle.aspx?aid=" & Request.Params("aid"))
            getdata()
        End If
End Sub
End Class
'--code end--

  保存編譯后,運行結(jié)果如圖14.13、14.14所示


圖14.13 文章詳細信息


圖14.14 文章相關(guān)評論

  14.4 本章小結(jié)

  這個實例功能相對簡單,結(jié)構(gòu)也很清晰,目的是對前面所學知識的總結(jié)和練習。主要是練習了服務器端控件以及數(shù)據(jù)庫技術(shù)方面的知識,希望讀者用心體會其中的用法。

  為了是讀者能夠關(guān)注與文章管理系統(tǒng)本身的結(jié)構(gòu)和各個功能模塊之間的聯(lián)系,本實例在編寫的過程中省略了一些細節(jié)問題,比如頁面間傳遞參數(shù),如果在實際應用中不加驗證,就會有被攻擊的危險。但是這完全不影響作為分析學習本系統(tǒng)的目的,如果讀者要將本系統(tǒng)改造成實際應用系統(tǒng)的時候一樣要注意。

  在實例系統(tǒng),我們沒有考慮到對普通用戶的管理和多管理員情況的管理,但是在實際引用中往往會提供用戶注冊,然后注冊會員會享有特別的服務。這里,我們把這個功能的實現(xiàn)作為一個作業(yè),留給讀者來思考怎么做,然后編碼實現(xiàn)它。

  通過本章的學習,讀者已經(jīng)可以從整體上把握一個管理信息系統(tǒng)的設(shè)計。本章實例嚴格按照管理系統(tǒng)的設(shè)計步驟, 從分析到實施,如果讀者能從這個方面來學習這個實例,對以后編寫大型的管理系統(tǒng)很有幫助。

打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET13個入門問題解答 - Asp.net源碼交流論壇 |-bbs.51aspx...
asp.net 2.0 正式版中無刷新頁面的開發(fā)(示例代碼的補充) _asp.net技巧
在ASP.NET 2.0中,一個ASP.NET頁面的生命周期主要為: - Payne‘s Blog - 博客園
ASP.NET頁面間數(shù)據(jù)傳遞的方法講解|.net(C# vb asp)
ASP.Net請求處理機制初步探索之旅
Asp.net控件開發(fā)學習筆記(五)---Asp.net客戶端狀態(tài)管理
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服