乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)

       liuqg 2006-03-11
      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)

      http://www.  更新日期:2006-03-06  網頁教學網  瀏覽次數(shù): 67

      經過前面系統(tǒng)分析和數(shù)據庫設計,文章管理系統(tǒng)的基本設計環(huán)境已經建立起來了,按照管理信息系統(tǒng)設計的環(huán)節(jié),現(xiàn)在已經進入了系統(tǒng)實施階段。本系統(tǒng)擬采用Visual Studio.NET2003設計。使用Visual Studio.NET2003新建一個Web應用程序 ,命名為TheArticleSYS,具體步驟略。下面,我們按照數(shù)據信息積累分先后順序詳細介紹本系統(tǒng)的設計與編寫。首先是后臺管理部分,然后是前臺瀏覽和檢索部分。

          14.3.1 Admin_Management.aspx的設計與編碼

          為了系統(tǒng)界面更加緊湊,我們把后臺管理部分的文章分類管理功能模塊和文章信息管理功能模塊集成到Admin_Management.aspx窗體內,并提供了文章發(fā)布的入口。

          Admin_Management.aspx窗體的前臺HTML代碼如下:

      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Admin_Management.aspx.vb" Inherits="TheArticleSYS.Admin_Management"%>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
       <HEAD>
        <title>Admin_Management</title>
        <meta name="vs_snapToGrid" content="True">
        <meta name="vs_showGrid" content="True">
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
       </HEAD>
       <body MS_POSITIONING="GridLayout">
        <center>
         <table>
          <tr>
           <td style="FONT-WEIGHT: bold; FONT-SIZE: 16pt; COLOR: white; HEIGHT: 50px; BACKGROUND-COLOR: #009999; TEXT-ALIGN: center">管理員管理窗口</td>
          <tr>
           <td width="762" align="center" style="BORDER-RIGHT: #009999 1pt solid; BORDER-TOP: #009999 1pt solid; BORDER-LEFT: #009999 1pt solid; BORDER-BOTTOM: #009999 1pt solid">
            <form id="Form1" method="post" runat="server">
             <asp:Panel id="Panel1" runat="server">
              <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="500" border="1">
               <TR>
                <TD><FONT face="宋體">管理員ID</FONT></TD>
                <TD>
                 <asp:TextBox id="TextBox1" runat="server"></asp:TextBox></TD>
               </TR>
               <TR>
                <TD><FONT face="宋體">密碼</FONT></TD>
                <TD>
                 <asp:TextBox id="TextBox2" runat="server" TextMode="Password"></asp:TextBox></TD>
               </TR>
               <TR>
                <TD align="center" colSpan="2">
                 <asp:Button id="Button1" runat="server" Text="登錄"></asp:Button></TD>
               </TR>
              </TABLE>
             </asp:Panel>
             <asp:Panel id="Panel2" runat="server" Visible="False">
              <asp:Button id="Button3" runat="server" Text="文章類別管理 " Height="32px"></asp:Button>
              <asp:Button id="Button4" runat="server" Text="文章信息管理" Height="32px" Width="120px"></asp:Button>
              <FONT face="宋體"><a href="Add_Articles.aspx" target="_blank">發(fā)布新文章</a></FONT>
             </asp:Panel>
             <asp:Panel id="Panel3" runat="server" Visible="False">
              <TABLE id="Table3" cellSpacing="1" cellPadding="1" width="758" border="1">
               <TR>
                <TD style="FONT-SIZE: 11pt"><FONT face="宋體">按類別分類</FONT>
                 <asp:DropDownList id="DropDownList1" runat="server" Width="80px" AutoPostBack="True"></asp:DropDownList><FONT face="宋體"> 按標題檢索</FONT>
                 <asp:TextBox id="TextBox4" runat="server"></asp:TextBox>
                 <asp:DropDownList id="DropDownList2" runat="server">
                  <asp:ListItem Value="0" Selected="True">模糊標題查找</asp:ListItem>
                  <asp:ListItem Value="1">精確標題查找</asp:ListItem>
                 </asp:DropDownList>
                 <asp:Button id="Button5" runat="server" Text="GoSearch"></asp:Button></TD>
               </TR>
               <TR>
                <TD style="HEIGHT: 21px">
                 <asp:DataGrid id="DataGrid2" runat="server" Height="312px" Width="752px" AutoGenerateColumns="False"
                  BorderWidth="1px" BorderColor="#CCCCCC" BackColor="White" BorderStyle="None" CellPadding="3"
                  AllowPaging="True" Font-Size="X-Small">
                  <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
                  <ItemStyle ForeColor="#000066"></ItemStyle>
                  <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
                  <FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
                  <Columns>
                   <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="編號"></asp:BoundColumn>
                   <asp:BoundColumn DataField="title" HeaderText="文章標題"></asp:BoundColumn>
                   <asp:BoundColumn DataField="writer" ReadOnly="True" HeaderText="作者"></asp:BoundColumn>
                   <asp:BoundColumn DataField="sdate" ReadOnly="True" HeaderText="發(fā)布時間"></asp:BoundColumn>
                   <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="標題修改" CancelText="取消" EditText="編輯"></asp:EditCommandColumn>
                   <asp:ButtonColumn Text="刪除" HeaderText="刪除文章" CommandName="Delete"></asp:ButtonColumn>
                  </Columns>
                  <PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
                 </asp:DataGrid></TD>
               </TR>
               <TR>
                <TD><FONT face="宋體"></FONT></TD>
               </TR>
              </TABLE>
             </asp:Panel>
             <asp:Panel id="Panel4" runat="server" Visible="False">
              <TABLE id="Table2" cellSpacing="1" cellPadding="1" width="758" border="1">
               <TR>
                <TD style="HEIGHT: 173px"><FONT face="宋體"></FONT>
                 <asp:DataGrid id="DataGrid1" runat="server" Height="176px" Width="752px" AutoGenerateColumns="False"
                  BorderWidth="1pt" BorderColor="#009999" Font-Size="X-Small">
                  <AlternatingItemStyle Font-Size="X-Small" BackColor="GhostWhite"></AlternatingItemStyle>
                  <ItemStyle Font-Size="X-Small"></ItemStyle>
                  <HeaderStyle Font-Size="Larger" Font-Bold="True" ForeColor="White" BackColor="#003399"></HeaderStyle>
                  <Columns>
                   <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="編號"></asp:BoundColumn>
                   <asp:BoundColumn DataField="akinds" HeaderText="類別"></asp:BoundColumn>
                   <asp:EditCommandColumn ButtonType="PushButton" UpdateText="更新" HeaderText="修改" CancelText="取消" EditText="修改"></asp:EditCommandColumn>
                   <asp:ButtonColumn Text="刪除" ButtonType="PushButton" HeaderText="刪除" CommandName="Delete"></asp:ButtonColumn>
                  </Columns>
                 </asp:DataGrid></FONT></TD>
               </TR>
               <TR>
                <TD>添加新的文章類別
                </TD>
               </TR>
               <TR>
                <TD>新類別名稱
                 <asp:TextBox id="TextBox3" runat="server" Width="64px"></asp:TextBox>
                 <asp:Button id="Button2" runat="server" Text="添加" Width="72px"></asp:Button></TD>
               </TR>
              </TABLE>
             </asp:Panel>
            </form>
           </td>
          </tr>
         </table>
        </center>
       </body>
      </HTML>

          簡要說明:進入后臺管理首先要進行身份驗證,如果身份合法才能被允許進入。我們采用了Panel控件的Visible屬性來控制對管理項的控制。在邏輯代碼塊中已經對部分過程和語句做了注釋,Admin_Management.aspx.vb的邏輯代碼如下:

      ‘code begin
      ‘引入命名空間,在使用Visual Studio.NET 2003編寫Web引用程序時候,可以不進行命名空間的引入
      ‘但是在使用類對象時必須是類名稱的完全引用。如:System.Web.UI.WebControls.DataGrid
      Imports System
      Imports System.Web
      Imports System.Data
      Public Class Admin_Management
          Inherits System.Web.UI.Page
      #Region " Web 窗體設計器生成的代碼 "
          ‘此處省略了設計器生成的無關代碼,以節(jié)省篇幅
         
      #End Region
      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              ‘在此處放置初始化頁的用戶代碼
              ‘如果Session中沒有保存管理員的登陸信息, 則表示未登錄或是登陸超時
              If Session("admin") = "" Then Panel1.Visible = True
      End Sub
          ‘從數(shù)據庫中獲取文章分類信息
          Sub getdata1()
              mysql = "select * from akinds order by id asc "
              Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(mysql, mycon)
              Dim dt As DataSet = New DataSet
              mycmd.Fill(dt)
              DataGrid1.DataSource = dt.Tables(0).DefaultView
              DataGrid1.DataBind()
      End Sub
          ‘從數(shù)據庫中獲取文章信息
          Sub getdata2()
              Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(viewstate("sql"), mycon)
              Dim dt As DataSet = New DataSet
              mycmd.Fill(dt)
              DataGrid2.DataSource = dt
              DataGrid2.DataBind()
      End Sub
          ‘文章類別管理--激活更新狀態(tài),分類名稱列為可編輯列
      Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
              DataGrid1.EditItemIndex = e.Item.ItemIndex
              getdata1()
      End Sub
          ‘文章類別管理--去消管理
      Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
              DataGrid1.EditItemIndex = -1
              getdata1()
      End Sub
          ‘文章類別管理  類別信息更新過程
      Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
              mysql = "update akinds set akinds=‘" + CType(e.Item.Cells(1).Controls(0), TextBox).Text + "‘ where id=" + e.Item.Cells(0).Text
              mycon.Open()
              Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
              mycmd.ExecuteNonQuery()
              mycon.Close()
              Response.Write("<script>alert(‘\n恭喜您,修改成功!!\n‘);</script>")
              DataGrid1.EditItemIndex = -1
              getdata1()
      End Sub
          ‘文章類別管理--文章類別添加
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
              If TextBox3.Text <> "" Then
                  mysql = "insert into akinds(akinds) values(‘" + TextBox3.Text + "‘)"
                  mycon.Open()
                  Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
                  mycmd.ExecuteNonQuery()
                  mycon.Close()
                  Response.Write("<script>alert(‘\n恭喜您,添加成功!!\n‘);</script>")
                  TextBox3.Text = ""
                  getdata1()
              End If
      End Sub
          ‘文章類別管理---刪除文章類別
      Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
              If e.CommandName = "Delete" Then
                  mysql = "delete from akinds where id=" + e.Item.Cells(0).Text
                  mycon.Open()
                  Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
                  mycmd.ExecuteNonQuery()
                  mycon.Close()
                  Response.Write("<script>alert(‘\n恭喜您,刪除成功!!\n‘);</script>")
                  TextBox1.Text = ""
                  getdata1()
              End If
      End Sub
          ‘系統(tǒng)登錄過程
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
              ‘通過ConfigurationSettings.AppSettings("AdminID")獲取Web.config配置文件信息中的管理員ID
              If TextBox1.Text = ConfigurationSettings.AppSettings("AdminID") Then
                  ‘通過ConfigurationSettings.AppSettings("PassWord")獲取Web.config配置文件信息中的管理員密碼
                  If TextBox2.Text = ConfigurationSettings.AppSettings("PassWord") Then
                      Session("admin") = "admin"
                      Response.Write("<script>alert(‘恭喜您,您已經成功登錄后臺管理系統(tǒng)!‘);</script>")
                      Panel2.Visible = True
                      Panel1.Visible = False
                  Else
                      Response.Write("<script>alert(‘對不起,您的密碼有誤,請核實后重試!‘);</script>")
                  End If
              Else
                  Response.Write("<script>alert(‘對不起,您的ID有誤,請核實后重試!‘);</script>")
              End If
      End Sub
          ‘文章信息管理--激活更新按鈕,文章標題列為可編輯列
      Private Sub DataGrid2_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid2.ItemCommand
              DataGrid2.EditItemIndex = e.Item.ItemIndex
              getdata2()
      End Sub
          ‘文章類別管理---顯示所有文章類別信息
      Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
              Panel3.Visible = False
              Panel4.Visible = True
              getdata1()
      End Sub
          ‘文章信息管理--顯示所有文章信息
      Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
              Panel4.Visible = False
              Panel3.Visible = True
              viewstate("sql") = "select id,title,writer,sdate from articles order by id desc"
              getdata2()
              getaidlist()
      End Sub
          ‘ 文章信息管理--翻頁過程
      Private Sub DataGrid2_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid2.PageIndexChanged
              DataGrid2.CurrentPageIndex = e.NewPageIndex
              getdata2()
      End Sub
          ‘文章信息管理--更新過程
      Private Sub DataGrid2_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid2.UpdateCommand
              mysql = "update articles set title=‘" + CType(e.Item.Cells(1).Controls(0), TextBox).Text + "‘ where id=" + e.Item.Cells(0).Text
              mycon.Open()
              Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
              mycmd.ExecuteNonQuery()
              mycon.Close()
              Response.Write("<script>alert(‘\n恭喜您,修改成功!!\n‘);</script>")
              DataGrid2.EditItemIndex = -1
              getdata2()
      End Sub
          ‘去消文章信息管理
      Private Sub DataGrid2_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid2.CancelCommand
              DataGrid2.EditItemIndex = -1
              getdata2()
      End Sub
          ‘文章信息管理--刪除文章
      Private Sub DataGrid2_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid2.DeleteCommand
              mysql = "delete from articles where id=" + e.Item.Cells(0).Text
              mycon.Open()
              Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
              mycmd.ExecuteNonQuery()
              mycon.Close()
              Response.Write("<script>alert(‘\n恭喜您,刪除成功!!\n‘);</script>")
              DataGrid2.EditItemIndex = -1
              getdata2()
      End Sub
          ‘從數(shù)據庫中獲取文章分類信息,并逐一加載到下拉列表框中。
          Sub getaidlist()
              mysql = "select * from akinds order by id asc "
              mycon.Open()
              Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
              Dim myreader As OleDb.OleDbDataReader
              myreader = mycmd.ExecuteReader
              DropDownList1.Items.Clear()
              Do While myreader.Read
                  DropDownList1.Items.Add(New ListItem(myreader("akinds"), myreader("id")))
              Loop
              DropDownList1.Items.Add(New ListItem(("所有類別"), "x"))
              DropDownList1.SelectedIndex = DropDownList1.Items.Count - 1
      End Sub
          ‘下拉列表框中的選擇項發(fā)生變化時候,執(zhí)行該過程
      Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
              If DropDownList1.SelectedValue <> "x" Then
                  viewstate("sql") = "select id ,title,writer,sdate from articles where akinds=" + DropDownList1.SelectedValue + "  order by id desc"
                  getdata2()
              End If
      End Sub
          ‘根據管理員提供的檢索信息列出符合條件的文章,然后管理進行
      Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
              If TextBox4.Text <> "" Then
                  If DropDownList2.SelectedValue = "0" Then
                      viewstate("sql") = "select id ,title,writer,sdate from articles where title like ‘%" + TextBox4.Text + "%‘ order by id desc"
                  ElseIf DropDownList2.SelectedValue = "0" Then
                      viewstate("sql") = "select id ,title,writer,sdate from articles where title= ‘" + TextBox4.Text + "‘ order by id desc"
                  End If
                  getdata2()
              End If
      End Sub
      End Class
      ‘ code end

          保存編譯后,運行效果如圖14.7、14.8、14.9所示。

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)
      圖14.7 管理員登錄

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)
      圖14.8 文章類別管理

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)
      圖14.9 文章信息管理

          14.3.2 Add_Articles.aspx的設計與編碼

          Add_Articles.aspx的功能是用來向數(shù)據庫中添加新文章的。前臺HTML代碼如下:

      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Add_Articles.aspx.vb"   Inherits="TheArticleSYS.Add_Articles"%>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
       <HEAD>
        <title>Add_Articles</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
       </HEAD>
       <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
         <center id="CENTER1">
          <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="762" border="1" style="BORDER-RIGHT: #009999 1pt solid; BORDER-TOP: #009999 1pt solid; FONT-SIZE: 12pt; BORDER-LEFT: #009999 1pt solid; BORDER-BOTTOM: #009999 1pt solid"
           borderColor="#009999">
           <TR>
            <TD colspan="2" style="BORDER-RIGHT: #009999 1pt solid; BORDER-TOP: #009999 1pt solid; FONT-WEIGHT: bold; FONT-SIZE: 15pt; BORDER-LEFT: #009999 1pt solid; COLOR: #009999; BORDER-BOTTOM: #009999 1pt solid; TEXT-ALIGN: center">文
             章 添 加 系 統(tǒng)</TD>
           </TR>
           <TR>
            <TD>文章標題</TD>
            <TD>
             <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
             <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="!不能為空!" Font-Size="X-Small"
              ControlToValidate="TextBox1"></asp:RequiredFieldValidator></TD>
           </TR>
           <TR>
            <TD>文章類別</TD>
            <TD>
             <asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
            </TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px">文章作者</TD>
            <TD>
             <asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
             <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="!不能為空!" Font-Size="X-Small"
              ControlToValidate="TextBox2"></asp:RequiredFieldValidator></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px">關鍵字</TD>
            <TD>
             <asp:TextBox id="Textbox6" runat="server"></asp:TextBox>
             <asp:RequiredFieldValidator id="Requiredfieldvalidator5" runat="server" ErrorMessage="!不能為空!" Font-Size="X-Small"
              ControlToValidate="TextBox6"></asp:RequiredFieldValidator></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px">文章出處</TD>
            <TD>
             <asp:TextBox id="TextBox3" runat="server"></asp:TextBox>
             <asp:RequiredFieldValidator id="RequiredFieldValidator3" runat="server" ErrorMessage="!不能為空!" Font-Size="X-Small"
              ControlToValidate="TextBox3"></asp:RequiredFieldValidator></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px">添加圖片</TD>
            <TD><INPUT type="file" id="upimg" runat="server"> <FONT face="宋體">圖片說明</FONT>
             <asp:TextBox id="TextBox5" runat="server"></asp:TextBox>
             <asp:Button id="Button1" runat="server" Text="上傳圖片"></asp:Button></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px">文章內容</TD>
            <TD>
             <asp:TextBox id="TextBox4" runat="server" TextMode="MultiLine" Width="640px" Rows="15"></asp:TextBox>
             <br>
             <asp:RequiredFieldValidator id="RequiredFieldValidator4" runat="server" ErrorMessage="!不能為空!" Font-Size="X-Small"
              ControlToValidate="TextBox4"></asp:RequiredFieldValidator>
            </TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px"></TD>
            <TD>
             <asp:Button id="Button2" runat="server" Text="添加文章"></asp:Button><FONT face="宋體"> 
             </FONT>
            </TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px"></TD>
            <TD><FONT face="宋體"></FONT></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px; HEIGHT: 17px"></TD>
            <TD style="HEIGHT: 17px"><FONT face="宋體"></FONT></TD>
           </TR>
           <TR>
            <TD style="WIDTH: 108px"></TD>
            <TD></TD>
           </TR>
          </TABLE>
         </center>
        </form>
       </body>
      </HTML>

          Add_Articles.aspx.vb邏輯代碼如下:

      Imports System
      Imports System.Web
      Imports System.Data
      Public Class Add_Articles
          Inherits System.Web.UI.Page
      #Region " Web 窗體設計器生成的代碼 "
          ‘此處省略了設計器生成的無關代碼,以節(jié)省篇幅
      #End Region
      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              ‘在此處放置初始化頁的用戶代碼
              ‘如果管理員未登錄或是超時,則跳轉到管理員登陸入口
              If Session("admin") = "" Then
                  Response.Redirect("Admin_Management.aspx")
              End If
              If Not Page.IsPostBack Then
                  ‘如果是第一次處理本頁面,則從數(shù)據庫中獲取文章分類信息,并添加到下來列表框中。
                  mysql = "select * from akinds "
                  mycon.Open()
                  Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
                  Dim myreader As OleDb.OleDbDataReader
                  myreader = mycmd.ExecuteReader
                  DropDownList1.Items.Clear()
                  Do While myreader.Read
                      DropDownList1.Items.Add(New ListItem(myreader("akinds"), myreader("id")))
                  Loop
                  myreader.Close()
                  mycon.Close()
              End If
      End Sub
          ‘圖片上傳功能,如果選擇的圖片合法,則自動保存到系統(tǒng)服務器中的picfile文件夾中,并把圖片路徑添加到文章信息中。
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
              Dim fn() As String
              Dim ft As String
              Dim fname As String
              If upimg.PostedFile.ContentLength > 0 Then
                  fn = upimg.PostedFile.FileName.Split("\")
                  ft = Right(fn(fn.Length - 1), 4)
                  If ft = ".jpg" Or ft = ".bmp" Or ft = ".gif" Then
                      fname = Trim(Str(Year(DateTime.Now))) + Trim(Str(DateTime.Now.Month)) + Trim(Str(DateTime.Now.Day)) + Trim(Str(DateTime.Now.Hour)) + Trim(Str(DateTime.Now.Second)) + Trim(Str(DateTime.Now.Millisecond)) + ft
                      ‘調用SaveAs方法,保存圖像信息
                      upimg.PostedFile.SaveAs(Server.MapPath(".") + "\picfile\" + fname)
                      fname = "<center><img src=picfile/" & fname & " border=0>" & IIf(TextBox5.Text <> "", "<br>" & TextBox5.Text, "")
                      ‘把圖片路徑信息添加到文章中
                      TextBox4.Text += Chr(10) & fname & "</center>" & Chr(10)
                  Else
                      Response.Write("<secript>alert(‘對不起,圖片格式不對,請選擇jpg|gif|bmp格式的圖片!‘);</script>")
                  End If
              End If
      End Sub
          ‘提交文章信息,
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
              ‘如果頁面通過驗證
              If Page.IsValid Then
                  Dim content As String
                  ‘替換掉正文中的VB.NET中的換行符號,轉化為Html語言中的換行符號,并空兩個漢字長度空格
                  ‘首行縮進兩個空格
                  content = "    " & Trim(TextBox4.Text.Replace(Chr(10), "<br>    "))
                  mysql = "insert into articles(title,sdate,content,writer,fw,akinds,keyword) "
                  mysql += "values(‘" + TextBox1.Text + "‘,‘" + DateTime.Now.ToString + "‘,‘" + content + "‘,‘" + TextBox2.Text + "‘,‘" + TextBox3.Text + "‘," + DropDownList1.SelectedValue + ",‘" + Textbox6.Text + "‘)"
                  mycon.Open()
                  Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
                  mycmd.ExecuteNonQuery()
                  Response.Write("<script>alert(‘恭喜你,你已經成功地添加了一篇文章!‘);</script>")
                  TextBox1.Text = ""
                  TextBox4.Text = ""
                  TextBox5.Text = ""
              End If
      End Sub
      End Class

          運行結果如圖14.10所示。

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)
      圖14.10 Add_Articles.aspx運行結果

          14.3.3 Newlist.aspx與Defalut.aspx的設計與實現(xiàn)

          Web用戶控件Newlist.aspx要實現(xiàn)的功能是:根據傳入的文章類別ID,查找出該類別文章列表中最新的5篇,并顯示出來。

          Newlist.aspx的前臺HTML代碼如下:

      <%@ Control Language="vb" AutoEventWireup="false" Codebehind="Newlist.ascx.vb" Inherits="TheArticleSYS.newlist" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
      <meta name="vs_showGrid" content="True">
      <TABLE id="Table1" style="BORDER-RIGHT: ghostwhite 1px solid; BORDER-TOP: ghostwhite 1px solid; BORDER-LEFT: ghostwhite 1px solid; WIDTH: 400px; BORDER-BOTTOM: ghostwhite 1px solid; HEIGHT: 48px"
       cellSpacing="1" cellPadding="1" width="450" border="1">
       <TR>
        <TD align="center"><FONT face="宋體"></FONT></TD>
       </TR>
       <asp:repeater id="Repeater1" runat="server">
        <ItemTemplate>
         <TR>
          <TD style="FONT-SIZE: 11pt; BORDER-TOP-STYLE: solid; BORDER-BOTTOM: cornsilk 1pt solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; HEIGHT: 19px"
           align="left">
           <a href=‘<%# "TheArticle.aspx?aid=" & databinder.eval(container.dataitem,"id")%>‘  title=‘<%# "文章標題"& chr(10) & databinder.eval(container.dataitem,"title") %>‘ >
            <%# iif(len(databinder.eval(container.dataitem,"title"))>20,left(databinder.eval(container.dataitem,"title"),20) &"...</a>--" ,databinder.eval(container.dataitem,"title") & "</a>--")%>
            <font style="FONT-SIZE: 10pt; COLOR: darkgray; FONT-STYLE: italic">[<%# databinder.eval(container.dataitem,"sdate") %>]</font>
          </TD>
         </TR>
        </ItemTemplate>
       </asp:repeater>
       <TR>
        <TD align="center"><FONT face="宋體"></FONT></TD>
       </TR>
      </TABLE>
      Newlist.aspx.vb的邏輯代碼如下:
      Imports System
      Imports System.Web
      Imports System.data
      Imports System.Configuration.ConfigurationSettings
      Public Class newlist
          Inherits System.Web.UI.UserControl
      #Region " Web 窗體設計器生成的代碼 "
            ‘此處省略了設計器生成的無關代碼,以節(jié)省篇幅
      #End Region
      Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              ‘在此處放置初始化頁的用戶代碼
              ‘如果傳入的參數(shù)不為空,則顯示出文章信息
              If aid <> "" Then
                  ‘ Dim constr As String = "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath(".") & "\Articlesys_db.mdb"
                  ‘  Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(constr)
                  Dim mysql As String
                  Dim constr As String = ConfigurationSettings.AppSettings("constr") & Server.MapPath(".") & ConfigurationSettings.AppSettings("dbs")
                  Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(constr)
                  mysql = "select top 5 title,id,sdate from articles where akinds=" + aid + " order by id desc"
                  Try
                      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()
                  Catch ex As Exception
                      Response.Write(ex.Message)
                  End Try
              End If
      End Sub
      End Class

          Default.aspx作為系統(tǒng)的默認主窗體,除了要顯示分類文章簡要信息外,還要提供文章檢索的入口以及管理員入口。其中,分類文章簡要信息引用Web用戶控件而實現(xiàn)的,在Default.aspx的HTML代碼中,我們首先要注冊Newlist.ascx。

          Default.aspx的HTML代碼如下:

      <%@ Register TagPrefix="uc1" TagName="newlist" Src="newlist.ascx" %>
      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" Inherits="TheArticleSYS.WebForm1"%>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <HTML>
       <HEAD>
        <title >叮咚文章管理系統(tǒng)歡迎您</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">
       </HEAD>
       <body MS_POSITIONING="GridLayout">
        <TABLE height="422" cellSpacing="0" cellPadding="0" width="947" border="0" ms_2d_layout="TRUE">
         <TR vAlign="top">
          <TD width="10" height="15"></TD>
          <TD width="937"></TD>
         </TR>
         <TR vAlign="top">
          <TD height="407"></TD>
          <TD>
           <CENTER id="CENTER1">
            <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="762" border="0">
             <tr>
              <td colSpan="2"><IMG src="images/bg12.jpg"></td>
             </tr>
             <TR>
              <TD vAlign="top" width="265">
               <form id="Form1" runat="server">
                <TABLE id="Table2" height="145" cellSpacing="1" cellPadding="1" width="248" border="1">
                 <TR>
                  <TD colSpan="2"><IMG src="images/search.jpg"></TD>
                 </TR>
                 <TR>
                  <TD width="57" height="30">類別</TD>
                  <TD height="30"><asp:dropdownlist id="DropDownList1" runat="server"></asp:dropdownlist></TD>
                 </TR>
                 <TR>
                  <TD width="57">
                   <P>檢索內容</P>
                  </TD>
                  <TD><asp:textbox id="TextBox1" runat="server"></asp:textbox><asp:dropdownlist id="DropDownList2" runat="server">
                    <asp:ListItem Value="title">標題</asp:ListItem>
                    <asp:ListItem Value="writer">作者</asp:ListItem>
                    <asp:ListItem Value="keyword">關鍵字</asp:ListItem>
                   </asp:dropdownlist></TD>
                 </TR>
                 <TR>
                  <TD width="92" colSpan="2"><asp:button id="Button1" runat="server" Text="檢索"></asp:button></TD>
                 </TR>
                </TABLE>
              </TD>
              <TD><asp:datalist id="DataList1" runat="server" ShowFooter="False" BackColor="White" BorderStyle="Double"
                Width="474px" RepeatDirection="Horizontal" RepeatColumns="1" BorderColor="#336666" CellPadding="0"
                GridLines="Horizontal" BorderWidth="1px">
                <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#339966"></SelectedItemStyle>
                <HeaderTemplate>
                </HeaderTemplate>
                <SeparatorStyle Width="1px"></SeparatorStyle>
                <ItemStyle HorizontalAlign="Left" ForeColor="#333333" BackColor="White"></ItemStyle>
                <ItemTemplate>
                 <blockquote style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: azure; BACKGROUND-COLOR: #009999">
                  <%# databinder.eval(container.dataitem,"akinds") %>
      <!--分類文章列表入庫口 ->
                  <a href=‘<%# "Articleslist.aspx?moreid="&databinder.eval(container.dataitem,"id")%>‘ target=_blank >
                   <img src="images/more.gif" border="0"></a> </blockquote><blockquote>
      <!--通過Web用戶控件實例Newlist1的aid屬性的數(shù)據庫綁定獲取aid的值->
                  <uc1:newlist id="Newlist1" runat="server" aid=‘<%# databinder.eval(container.dataitem,"id") %>‘>
                  </uc1:newlist>
                 </blockquote>
                </ItemTemplate>
                <FooterStyle ForeColor="#333333" BackColor="White"></FooterStyle>
                <HeaderStyle Font-Size="Larger" Font-Bold="True" HorizontalAlign="Left" ForeColor="White" VerticalAlign="Middle"
                 BackColor="#336666"></HeaderStyle>
               </asp:datalist></TD>
             </TR>
             <TR>
              <TD width="265"></TD>
              <TD></TD>
             </TR>
             </FORM></TABLE>
           </CENTER>
          </TD>
         </TR>
        </TABLE>
       </body>
      </HTML>

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

      Imports System
      Imports System.Web
      Imports System.data
      Public Class WebForm1
          Inherits System.Web.UI.Page
      #Region " Web 窗體設計器生成的代碼 "
           ‘此處省略了設計器生成的無關代碼,以節(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
                  ‘獲取文章分類信息
                  mysql = "select * from akinds "
                  mycon.Open()
                  Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(mysql, mycon)
                  Dim dt As DataSet = New DataSet
                  mycmd.Fill(dt)
                  DataList1.DataSource = dt.Tables(0)
                  DataList1.DataBind()
                  getlist()
              End If
      End Sub
          ‘獲取文章類別信息,并添加到下拉列表框中
          Sub getlist()
              Dim mysql As String = "select * from akinds "
              Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
              Dim myreader As OleDb.OleDbDataReader
              myreader = mycmd.ExecuteReader
              DropDownList1.Items.Clear()
              Do While myreader.Read
                  DropDownList1.Items.Add(New ListItem(myreader("akinds"), myreader("id")))
              Loop
              myreader.Close()
              mycon.Close()
              DropDownList1.Items.Add(New ListItem("所有類別", "-1"))
              DropDownList1.SelectedValue = "-1"
      End Sub
          ‘文章檢索入口,根據用戶條件,組合成查詢表達式,傳入ArticlesList.aspx
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
              Dim str As String
              str = "akind=" & DropDownList1.SelectedValue
              str += "&infor=" & TextBox1.Text
              str += "&seekid=" & DropDownList2.SelectedValue
              Response.Redirect("ArticlesList.aspx?" & str)
      End Sub
      End Class

          編譯后,Delfault.aspx運行結果如圖14.11所示:
       

      ASP.net文章管理系統(tǒng):系統(tǒng)設計與編碼(上)
      圖14.11 Default.aspx運行結果

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多