ASP.NET编程:ASP.net文章办理体系:体系计划与编码(...
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。asp.net|编码|计划 ASP.net文章办理体系:体系计划与编码。相干文章:ASP.net文章办理体系:体系计划与编码(上)
14.3.4ArticlesList.aspx的计划与编码
ArticlesList.aspx供应了两个功效:
(1)依据传进参数列出该种别的文章列表;
(2)依据传进参赛检索出切合前提的文章列表。
这两个功效的完成是有背景逻辑程序依据传进的参数范例判别,然后为用户供应分歧的服务。
ArticlesList.aspx的HTML代码以下:
<%@PageLanguage="vb"AutoEventWireup="false"Codebehind="ArticlesList.aspx.vb"Inherits="TheArticleSYS.ArticlesList"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<metaname="vs_snapToGrid"content="False">
<title>ArticlesList</title>
<metacontent="MicrosoftVisualStudio.NET7.1"name="GENERATOR">
<metacontent="VisualBasic.NET7.1"name="CODE_LANGUAGE">
<metacontent="JavaScript"name="vs_defaultClientScript">
<metacontent="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema">
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formid="Form1"method="post"runat="server">
<center>
<TABLEid="Table1"style="BORDER-RIGHT:#0099991pxsolid;BORDER-TOP:#0099991pxsolid;BORDER-LEFT:#0099991pxsolid;BORDER-BOTTOM:#0099991pxsolid"
cellSpacing="0"cellPadding="0"width="760"border="1">
<TR>
<TD>
<HTML>
<HEAD>
<titlerunat="server"id="Mytitle"></title>
<metacontent="MicrosoftVisualStudio.NET7.1"name="GENERATOR">
<metacontent="VisualBasic.NET7.1"name="CODE_LANGUAGE">
<metacontent="JavaScript"name="vs_defaultClientScript">
<metacontent="http://schemas.microsoft.com/intellisense/ie5"name="vs_targetSchema">
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formid="Form1"method="post"runat="server">
<center>
<TABLEid="Table1"style="BORDER-RIGHT:#739cd61ptsolid;BORDER-TOP:#739cd61ptsolid;BORDER-LEFT:#739cd61ptsolid;BORDER-BOTTOM:#739cd61ptsolid"
cellSpacing="0"cellPadding="0"width="762"background="images/bg10.gif"border="0">
<TR>
<TD></TD>
<TDalign="right">
<TABLEid="Table2"style="BORDER-RIGHT:#739cd61ptsolid;BORDER-TOP:#739cd61ptsolid;BORDER-LEFT:#739cd61ptsolid;WIDTH:680px;BORDER-BOTTOM:#739cd61ptsolid;HEIGHT:50px"
cellSpacing="0"cellPadding="0"width="680"border="0">
<TR>
<TDstyle="FONT-WEIGHT:bold;FONT-SIZE:14pt;COLOR:white;HEIGHT:50px;BACKGROUND-COLOR:#739cd6"
align="center"><asp:labelid="Label1"runat="server">Label</asp:label></TD>
</TR>
<TR>
<TDstyle="BORDER-RIGHT:#739cd61ptsolid;BORDER-TOP:#739cd61ptsolid;FONT-SIZE:10pt;BORDER-LEFT:#739cd61ptsolid;BORDER-BOTTOM:#739cd61ptsolid;HEIGHT:30px;BACKGROUND-COLOR:azure"
align="center"><asp:labelid="Label2"runat="server">Label</asp:label></TD>
</TR>
<TR>
<TDstyle="BORDER-RIGHT:#739cd61ptsolid;BORDER-TOP:#739cd61ptsolid;FONT-SIZE:10pt;BORDER-LEFT:#739cd61ptsolid;BORDER-BOTTOM:#739cd61ptsolid;HEIGHT:30px;BACKGROUND-COLOR:azure"
align="center"><asp:labelid="Label4"runat="server">Label</asp:label></TD>
</TR>
<TR>
<TDstyle="FONT-SIZE:11pt;LINE-HEIGHT:20pt"><asp:labelid="Label3"runat="server">Label</asp:label></TD>
</TR>
<TR>
<TDstyle="BORDER-BOTTOM:#009999thinsolid"><br>
</TD>
</TR>
<TR>
<TD><br>
</TD>
</TR>
<TR>
<TDalign="center"><uc1:tealkerid=Tealker1runat="server"aid=<%#Request.Params("aid")%>></uc1:tealker></TD>
</TR>
</TABLE>
<P></P>
</TD>
</TR>
</TABLE>
</center>
</form>
</body>
</HTML>
TheArticle.aspx.vb的逻辑代码以下:
---codebegin---
PublicClassTheArticle
InheritsSystem.Web.UI.Page
#Region"Web窗体计划器天生的代码"
此处省略了计划器天生的有关代码,以节俭篇幅
#EndRegion
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
在此处安排初始化页的用户代码
IfRequest.Params("aid")""Then
mysql="select*fromarticleswhereid="+Request.Params("aid")
mycon.Open()
DimmycmdAsOleDb.OleDbCommand=NewOleDb.OleDbCommand(mysql,mycon)
DimmyreaderAsOleDb.OleDbDataReader
myreader=mycmd.ExecuteReader
DoWhilemyreader.Read
显现文章题目
Label1.Text=myreader("title")
显现文章属性
Label2.Text="-----作者:"&myreader("writer")&"文章出自:"&myreader("fw")&"公布工夫:"&myreader("sdate")
Label2.Text+="检察次数:"&myreader("views")
显现关头字
Label4.Text="关头字["&myreader("keyword")&"]"
显现文章内容
Label3.Text=myreader("content")
静态网页题目
Mytitle.InnerText=myreader("title")&"-----叮咚文章办理体系"
Loop
myreader.Close()
updateviews(Request.Params("aid"))
EndIf
EndSub
更新文章扫瞄次数
Subupdateviews(ByValaidAsString)
mysql="updatearticlessetviews=views+1whereid="+aid
DimmycmdAsOleDb.OleDbCommand=NewOleDb.OleDbCommand(mysql,mycon)
mycmd.ExecuteNonQuery()
mycon.Close()
EndSub
EndClass
--codeend--
Tealker.ascx的HTML代码以下:
<%@ControlLanguage="vb"AutoEventWireup="false"Codebehind="Tealker.ascx.vb"Inherits="TheArticleSYS.tealker"TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<P>
<TABLEid="Table1"cellSpacing="0"cellPadding="0"width="679"border="0"style="BORDER-RIGHT:#0099991pxsolid;BORDER-TOP:#0099991pxsolid;BORDER-LEFT:#0099991pxsolid;BORDER-BOTTOM:#0099991pxsolid;HEIGHT:91px">
<TR>
<TDalign="center"colspan="3"style="FONT-WEIGHT:bold;FONT-SIZE:14pt;COLOR:white;BACKGROUND-COLOR:#009999">该文章的批评
</TD>
</TR>
<asp:repeaterid="Repeater1"runat="server">
<ItemTemplate>
<TRstyle="BACKGROUND-COLOR:#f0ffff">
<TDstyle="BORDER-RIGHT:#0099001pxsolid;BORDER-TOP:#0099001pxsolid;FONT-SIZE:10pt;BORDER-LEFT:#0099001pxsolid;WIDTH:150px;BORDER-BOTTOM:#0099001pxsolid">
批评人:<%#databinder.eval(container.dataitem,"talker")%>
</TD>
<TDstyle="BORDER-RIGHT:#0099001pxsolid;BORDER-TOP:#0099001pxsolid;FONT-SIZE:10pt;BORDER-LEFT:#0099001pxsolid;WIDTH:200px;BORDER-BOTTOM:#0099001pxsolid">
批评日期<%#databinder.eval(container.dataitem,"tdate")%>
</TD>
<TDstyle="BORDER-RIGHT:#0099001pxsolid;BORDER-TOP:#0099001pxsolid;FONT-SIZE:10pt;BORDER-LEFT:#0099001pxsolid;BORDER-BOTTOM:#0099001pxsolid">
电邮<%#databinder.eval(container.dataitem,"email")%>
</TD>
</TR>
<TR>
<TDcolspan="3"style="BORDER-RIGHT:#0099991ptsolid;BORDER-TOP:#0099991ptsolid;FONT-SIZE:10pt;BORDER-LEFT:#0099991ptsolid;BORDER-BOTTOM:#0099991ptsolid">
<%#databinder.eval(container.dataitem,"content")%>
</TD>
</TR>
</ItemTemplate>
<SeparatorTemplate>
<TR>
<TDstyle="BORDER-BOTTOM:lightsalmon1pxsolid">
</TD>
</TR>
</SeparatorTemplate>
</asp:repeater>
<TR>
<TDcolspan="3">
</TD>
</TR>
</TABLE>
</P>
<TABLEid="Table2"style="BORDER-RIGHT:#0099991ptsolid;BORDER-TOP:#0099991ptsolid;BORDER-LEFT:#0099991ptsolid;BORDER-BOTTOM:#0099991ptsolid;HEIGHT:242px"
cellSpacing="0"cellPadding="0"width="679"border="0">
<TR>
<TDalign="center"style="FONT-WEIGHT:bold;FONT-SIZE:14pt;COLOR:white;BACKGROUND-COLOR:#009999">
宣布我对该文的批评
</TD>
</TR>
<TR>
<TDstyle="FONT-SIZE:11pt;BACKGROUND-COLOR:azure">我的昵称
<asp:textboxid="TextBox1"runat="server"BorderStyle="Groove"BorderColor="#E0E0E0"></asp:textbox>电邮
<asp:textboxid="TextBox2"runat="server"BorderStyle="Groove"BorderColor="#E0E0E0"></asp:textbox><asp:requiredfieldvalidatorid="RequiredFieldValidator1"runat="server"ControlToValidate="TextBox1"Font-Size="X-Small"
ErrorMessage="昵称不克不及为空!"></asp:requiredfieldvalidator><asp:requiredfieldvalidatorid="RequiredFieldValidator2"runat="server"ControlToValidate="TextBox2"Font-Size="X-Small"
ErrorMessage="电邮不克不及为空!"></asp:requiredfieldvalidator></TD>
</TR>
<TR>
<TDstyle="HEIGHT:131px">内容
<asp:requiredfieldvalidatorid="RequiredFieldValidator3"runat="server"ControlToValidate="TextBox3"Font-Size="X-Small"
ErrorMessage="批评内容不克不及为空!"></asp:requiredfieldvalidator><br>
<asp:textboxid="TextBox3"runat="server"Height="114px"Width="624px"TextMode="MultiLine"></asp:textbox></TD>
</TR>
<TR>
<TD><asp:buttonid="Button1"runat="server"Text="提交"></asp:button></TD>
</TR>
</TABLE>
Tealker.ascx.vb的逻辑代码以下:
---codebegin--
ImportsSystem.Web.Configuration
PublicClasstealker
InheritsSystem.Web.UI.UserControl
#Region"Web窗体计划器天生的代码"
此处省略了计划器天生的有关代码,以节俭篇幅
#EndRegion
PrivateSubPage_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
在此处安排初始化页的用户代码
aid=Request.Params("aid")
Ifaid""Then
getdata()
EndIf
EndSub
显现文章批评信息
Subgetdata()
DimconstrAsString=ConfigurationSettings.AppSettings("constr")&Server.MapPath(".")&ConfigurationSettings.AppSettings("dbs")
DimmyconAsOleDb.OleDbConnection=NewOleDb.OleDbConnection(constr)
IfNotPage.IsPostBackThen
mysql="select*fromtalkswherearticleid="+Request.Params("aid")+"orderbytdateasc"
DimmycmdAsOleDb.OleDbDataAdapter=NewOleDb.OleDbDataAdapter(mysql,mycon)
DimdtAsDataSet=NewDataSet
mycmd.Fill(dt)
Repeater1.DataSource=dt.Tables(0)
Repeater1.DataBind()
EndIf
EndSub
提交文章批评内容
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimconstrAsString=ConfigurationSettings.AppSettings("constr")&Server.MapPath(".")&ConfigurationSettings.AppSettings("dbs")
DimmyconAsOleDb.OleDbConnection=NewOleDb.OleDbConnection(constr)
IfPage.IsValidThen
mysql="insertintotalks(articleid,talker,email,content)values("+Request.Params("aid")+","+TextBox1.Text+","+TextBox2.Text+","+TextBox3.Text.Replace(Chr(10),"<br>")+")"
mycon.Open()
DimmycmdAsOleDb.OleDbCommand=NewOleDb.OleDbCommand(mysql,mycon)
mycmd.ExecuteNonQuery()
Response.Write("<script>alert(祝贺您,批评乐成!);</script>")
mycon.Close()
Response.Redirect("Thearticle.aspx?aid="&Request.Params("aid"))
getdata()
EndIf
EndSub
EndClass
--codeend--
保留编译后,运转了局如4.13、14.14所示
4.13文章具体信息
4.14文章相干批评
14.4本章小结
这个实例功效绝对复杂,布局也很明晰,目标是对后面所学常识的总结和实习。次要是实习了服务器端控件和数据库手艺方面的常识,但愿读者专心体味个中的用法。
为了是读者可以存眷与文章办理体系自己的布局和各个功效模块之间的接洽,本实例在编写的过程当中省略了一些细节成绩,好比页面间传送参数,假如在实践使用中不加考证,就会有被打击的伤害。可是这完整不影响作为剖析进修本体系的目标,假如读者要将本体系改革成实践使用体系的时分一样要注重。
在实例体系,我们没有思索到对一般用户的办理和多办理员情形的办理,可是在实践援用中常常会供应用户注册,然后注册会员会享有出格的服务。这里,我们把这个功效的完成作为一个功课,留给读者来思索怎样做,然后编码完成它。
经由过程本章的进修,读者已能够从全体上掌控一个办理信息体系的计划。本章实例严厉依照办理体系的计划步骤,从剖析到实行,假如读者能从这个方面来进修这个实例,对今后编写年夜型的办理体系很有匡助。
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
页:
[1]