ASP.NET笔记之文章发布管理小系统案例

  母版页:SiteFont.Master

  

复制代码 代码如下:

  <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteFont.master.cs" Inherits="协同企业管理系统.SiteFont" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <title></title>

  <link href="css/main.css" rel="stylesheet" type="text/css" />

  <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

  <script type="text/javascript">

  //        $(function () {

  //            $("#nav li").mouseenter(function () {

  //                $(this).addClass("active").siblings().removeClass("active")

  //            });

  //        });

  </script>

  <asp:ContentPlaceHolder ID="head" runat="server">

  </asp:ContentPlaceHolder>

  </head>

  <body>

  <form id="form1" runat="server">

  <div id="mainBox">

  <div id="header">

  <img src="~/image/banner.jpg" runat="server" alt=""/>

  <ul id="nav">

  <li>我的首页 |</li>

  <li>关于我们 |</li>

  <li>资源下载 |</li>

  <li>我的收藏 |</li>

  <li>文章动态 |</li>

  <li>关于我们</li>

  </ul>

  </div>

  <br class="clear"/>

  <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

  </asp:ContentPlaceHolder>

  <div id="footer">

  <br class="clear"/>

  <hr />

  <center>

  智慧协同版权所有 2013-2013 粤A

  </center>

  </div>

  </div>

  </form>

  </body>

  </html>

  母版页CSS文件:main.css

  

复制代码 代码如下:

  body {

  }

  .clear

  {

  clear:both;}

  #mainBox

  {

  width:950px;

  margin-left:auto;

  margin-right:auto;}

  #nav

  {

  list-style-type:none;

  background-color:inherit;

  }

  #nav LI

  {

  float:left;

  margin-right:20px;

  font-size:large;

  }

  #nav .active

  {

  background-color:Red;

  }

  主页面:News_admin.aspx

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="News_admin.aspx.cs" Inherits="协同企业管理系统.admin.News_admin" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <title></title>

  </head>

  <body>

  <form id="form1" runat="server">

  <asp:ObjectDataSource ID="obdNews" runat="server" DeleteMethod="Delete"

  InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"

  SelectMethod="GetData"

  TypeName="协同企业管理系统.DAL.DataSetNewsTableAdapters.T_NewsTableAdapter"

  UpdateMethod="Update">

  <DeleteParameters>

  <asp:Parameter Name="Original_ID" Type="Int64" />

  </DeleteParameters>

  <InsertParameters>

  <asp:Parameter Name="ID" Type="Int64" />

  <asp:Parameter Name="sTitle" Type="String" />

  <asp:Parameter Name="sContent" Type="String" />

  <asp:Parameter Name="SbuildDate" Type="String" />

  <asp:Parameter Name="iType" Type="Int32" />

  <asp:Parameter Name="sUser" Type="String" />

  <asp:Parameter Name="sNote" Type="String" />

  </InsertParameters>

  <UpdateParameters>

  <asp:Parameter Name="sTitle" Type="String" />

  <asp:Parameter Name="sContent" Type="String" />

  <asp:Parameter Name="SbuildDate" Type="String" />

  <asp:Parameter Name="iType" Type="Int32" />

  <asp:Parameter Name="sUser" Type="String" />

  <asp:Parameter Name="sNote" Type="String" />

  <asp:Parameter Name="Original_ID" Type="Int64" />

  </UpdateParameters>

  </asp:ObjectDataSource>

  <a href="News_add.aspx?flag=add">发布文章</a>

  <asp:ListView ID="ListView1" runat="server" DataKeyNames="ID"

  DataSourceID="obdNews">

  <EmptyDataTemplate>

  <table runat="server"

  style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">

  <tr>

  <td>

  暂时没有文章</td>

  </tr>

  </table>

  </EmptyDataTemplate>

  <ItemTemplate>

  <tr style="background-color: #FFFBD6;color: #333333;">

  <td>

  <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" />

  <a href='News_add.aspx?flag=edit&id=<%# Eval ("ID") %>' >修改</a>

  </td>

  <td>

  <asp:Label ID="sTitleLabel" runat="server" Text='<%# Eval("sTitle") %>' />

  </td>

  <td>

  <asp:Label ID="SbuildDateLabel" runat="server"

  Text='<%# Eval("SbuildDate") %>' />

  </td>

  <td>

  <asp:Label ID="iTypeLabel" runat="server" Text='<%# Eval("iType") %>' />

  </td>

  <td>

  <asp:Label ID="sUserLabel" runat="server" Text='<%# Eval("sUser") %>' />

  </td>

  </tr>

  </ItemTemplate>

  <LayoutTemplate>

  <table runat="server">

  <tr runat="server">

  <td runat="server">

  <table ID="itemPlaceholderContainer" runat="server" border="1"

  style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;font-family: Verdana, Arial, Helvetica, sans-serif;">

  <tr runat="server" style="background-color: #FFFBD6;color: #333333;">

  <th runat="server">

  </th>

  <th runat="server">

  sTitle</th>

  <th runat="server">

  SbuildDate</th>

  <th runat="server">

  iType</th>

  <th runat="server">

  sUser</th>

  </tr>

  <tr ID="itemPlaceholder" runat="server">

  </tr>

  </table>

  </td>

  </tr>

  <tr runat="server">

  <td runat="server"

  style="text-align: center;background-color: #FFCC66;font-family: Verdana, Arial, Helvetica, sans-serif;color: #333333;">

  </td>

  </tr>

  </table>

  </LayoutTemplate>

  </asp:ListView>

  </form>

  </body>

  </html>

  文章列表页面:News_list.aspx

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="News_list.aspx.cs" Inherits="协同企业管理系统.admin.News_list" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <title></title>

  </head>

  <body>

  <form id="form1" runat="server">

  <div>

  <asp:ObjectDataSource ID="obdNewslist" runat="server" DeleteMethod="Delete"

  InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"

  SelectMethod="GetDataPage" SelectCountMethod="NewsQuery"

  TypeName="协同企业管理系统.DAL.DataSetNewsTableAdapters.T_NewsTableAdapter"

  UpdateMethod="Update" EnablePaging="True">

  <DeleteParameters>

  <asp:Parameter Name="Original_ID" Type="Int64" />

  </DeleteParameters>

  <InsertParameters>

  <asp:Parameter Name="sTitle" Type="String" />

  <asp:Parameter Name="sContent" Type="String" />

  <asp:Parameter Name="SbuildDate" Type="String" />

  <asp:Parameter Name="iType" Type="Int32" />

  <asp:Parameter Name="sUser" Type="String" />

  <asp:Parameter Name="sNote" Type="String" />

  </InsertParameters>

  <UpdateParameters>

  <asp:Parameter Name="sTitle" Type="String" />

  <asp:Parameter Name="sContent" Type="String" />

  <asp:Parameter Name="SbuildDate" Type="String" />

  <asp:Parameter Name="iType" Type="Int32" />

  <asp:Parameter Name="sUser" Type="String" />

  <asp:Parameter Name="sNote" Type="String" />

  <asp:Parameter Name="Original_ID" Type="Int64" />

  </UpdateParameters>

  </asp:ObjectDataSource>

  </div>

  <asp:ListView ID="ListView1" runat="server" DataKeyNames="ID"

  DataSourceID="obdNewslist">

  <EmptyDataTemplate>

  暂时没有文章

  </EmptyDataTemplate>

  <ItemTemplate>

  <li><a href='News_detail.aspx?ID=<%#Eval("ID")%>'><%#Eval ("sTitle") %></a></li>

  </ItemTemplate>

  <LayoutTemplate>

  <ul>

  <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>

  </ul>

  <%-- QueryStringField 传页数参数名字--%>

  <asp:DataPager ID="DataPager1" runat="server" PageSize="5" QueryStringField="pageName">

  <Fields>

  <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="True"

  ShowLastPageButton="false" ShowNextPageButton="false"

  ShowPreviousPageButton="true"/>

  <asp:NumericPagerField></asp:NumericPagerField>

  <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="false"

  ShowLastPageButton="True" ShowPreviousPageButton="false" ShowNextPageButton="true" />

  </Fields>

  </asp:DataPager>

  </LayoutTemplate>

  </asp:ListView>

  </form>

  </body>

  </html>

  添加/修改文章页面:News_add.aspx

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true"ValidateRequest="false" CodeBehind="News_add.aspx.cs" Inherits="协同企业管理系统.admin.News_add" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <script src="js/ckeditor/ckeditor.js" type="text/javascript"></script>

  <title></title>

  </head>

  <body>

  <form id="form1" runat="server">

  <div>

  <table border="0" cellpadding="0" cellspacing="0">

  <tr>

  <td>

  <asp:Label ID="Label1" runat="server" Text="标题">

  </asp:Label><asp:TextBox ID="txtTitle"

  runat="server"></asp:TextBox>

  </td>

  </tr>

  <tr>

  <td>

  <asp:Label ID="Label2" runat="server" Text="正文"></asp:Label>

  <asp:TextBox ID="txtContent" CssClass="ckeditor"

  runat="server" TextMode="MultiLine"></asp:TextBox>

  </td>

  </tr>

  <tr>

  <td>

  <asp:Button ID="btnSave" runat="server" Text="保存" onclick="btnSave_Click" />

  </td>

  </tr>

  </table>

  </div>

  </form>

  </body>

  </html>

  添加/修改文章后台代码:News_add.aspx.cs

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using 协同企业管理系统.DAL.DataSetNewsTableAdapters;

  namespace 协同企业管理系统.admin

  {

  public partial class News_add : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPostBack) {

  //传入参数

  var flag = Request["flag"];

  if (flag == "add") { }

  //如果是表示修改的参数,则根据ID获取数据库中的数据

  //显示在修改页面上

  else if (flag == "edit") {

  int ID = Convert.ToInt32(Request["ID"]);

  var NewsRow = new T_NewsTableAdapter().GetDataById(ID).Single();

  txtContent.Text = NewsRow.sContent;

  txtTitle.Text = NewsRow.sTitle;

  }

  else { throw new Exception("参数传入有误"); }

  }

  }

  protected void btnSave_Click(object sender, EventArgs e)

  {

  if (!IsValid) {

  return;

  }

  //保存

  string flag = Request["flag"];

  if (flag == "add") {

  string nowTime=System.DateTime.Now.ToString("G");

  new T_NewsTableAdapter().Insert(txtTitle.Text, txtContent.Text, nowTime,1,"admin","无");

  }

  else if(flag=="edit"){

  int ID=Convert.ToInt32(Request["ID"]);

  var newsRow=new T_NewsTableAdapter().GetDataById(ID).Single();

  newsRow.sContent=txtContent.Text;

  newsRow.sTitle=txtTitle.Text;

  new T_NewsTableAdapter().Update(newsRow);

  }

  Response.Redirect("News_admin.aspx");

  }

  }

  }

  文章详情页面:News_detail.aspx

  

复制代码 代码如下:

  <%@ Page Title="" Language="C#" MasterPageFile="~/SiteFont.Master" AutoEventWireup="true" CodeBehind="News_detail.aspx.cs" Inherits="协同企业管理系统.admin.News_detail" %>

  <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

  </asp:Content>

  <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

  <center><h2><asp:Literal ID="Literal1" runat="server" ></asp:Literal></h2></center>

  <p style="float:right">作者:<asp:Literal ID="Literal2" runat="server"></asp:Literal>

  发布日期:<asp:Literal ID="Literal3" runat="server"></asp:Literal></p>

  <br class="clear" />

  <p><asp:Literal ID="Literal4" runat="server"></asp:Literal></p>

  </asp:Content>

  文章详情后台代码:News_detail.aspx.cs

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using 协同企业管理系统.DAL.DataSetNewsTableAdapters;

  namespace 协同企业管理系统.admin

  {

  public partial class News_detail : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPostBack) {

  int ID = Convert.ToInt32(Request["ID"]);

  var NewsTable = new T_NewsTableAdapter().GetDataById(ID);

  if (NewsTable.Count <= 0)

  {

  Literal1.Visible = false;

  Literal2.Visible = false;

  Literal3.Visible = false;

  Literal4.Text = "找不到指定新闻,请查看其它新闻。";

  }

  else if(NewsTable.Count>0) {

  var NewsRows = NewsTable.Single();

  Literal1.Text=NewsRows.sTitle;

  Literal2.Text = NewsRows.sUser;

  Literal3.Text = NewsRows.SbuildDate;

  Literal4.Text = NewsRows.sContent;

  }

  }

  }

  }

  }

  在ascx文件中使用Repeater动态加载数据:News_Tablist.ascx

  

复制代码 代码如下:

  <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="News_Tablist.ascx.cs" Inherits="协同企业管理系统.admin.News_Tablist" %>

  <asp:Repeater ID="Repeater1" runat="server" >

  <HeaderTemplate><ul></HeaderTemplate>

  <ItemTemplate><li>标题:<%# Eval("sTitle")%></li></ItemTemplate>

  <FooterTemplate></u1></FooterTemplate>

  </asp:Repeater>

  News_Tablist.ascx.cs

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using 协同企业管理系统.DAL.DataSetNewsTableAdapters;

  namespace 协同企业管理系统.admin

  {

  public partial class News_Tablist : System.Web.UI.UserControl

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPostBack) {

  Response.Write("3333");

  var data = new T_NewsTableAdapter().GetDataByiType(iType);

  Repeater1.DataSource = data;

  Repeater1.DataBind();

  }

  }

  public int iType

  {

  get;

  set;

  }

  }

  }

  附件上传页面:Pic_load.aspx

  

复制代码 代码如下:

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Pic_load.aspx.cs" Inherits="协同企业管理系统.admin.Pic_load" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head runat="server">

  <title></title>

  </head>

  <body>

  <form id="form1" runat="server">

  <div>

  <asp:FileUpload ID="FileUpload1" runat="server" />

  <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

  </div>

  </form>

  </body>

  </html>

  附件上传后台代码:Pic_load.aspx.cs

  

复制代码 代码如下:

  using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Web;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.IO;

  namespace 协同企业管理系统.admin

  {

  public partial class Pic_load : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  }

  protected void Button1_Click(object sender, EventArgs e)

  {

  FileUpload fileload = (FileUpload)form1.FindControl("FileUpload1");

  if (fileload.HasFile) {

  //校验文件类型

  string ext = Path.GetExtension(fileload.FileName).ToLower();

  Response.Write(ext);

  if (ext == ".jpg" || ext == ".jpeg" || ext == ".gif" || ext == ".png")

  {

  Response.Write("sucess");

  //全路径。根目录

  fileload.SaveAs(Server.MapPath("~/image/" + fileload.FileName));

  }

  else

  {

  ClientScript.RegisterStartupScript(GetType(), "alert", "alert('只允许上传jpg/jpeg/gif/png文件');", true);

  return;

  }

  }

  }

  }

  }