|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到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所示
14.4本章小结
这个实例功效绝对复杂,布局也很明晰,目标是对后面所学常识的总结和实习。次要是实习了服务器端控件和数据库手艺方面的常识,但愿读者专心体味个中的用法。
为了是读者可以存眷与文章办理体系自己的布局和各个功效模块之间的接洽,本实例在编写的过程当中省略了一些细节成绩,好比页面间传送参数,假如在实践使用中不加考证,就会有被打击的伤害。可是这完整不影响作为剖析进修本体系的目标,假如读者要将本体系改革成实践使用体系的时分一样要注重。
在实例体系,我们没有思索到对一般用户的办理和多办理员情形的办理,可是在实践援用中常常会供应用户注册,然后注册会员会享有出格的服务。这里,我们把这个功效的完成作为一个功课,留给读者来思索怎样做,然后编码完成它。
经由过程本章的进修,读者已能够从全体上掌控一个办理信息体系的计划。本章实例严厉依照办理体系的计划步骤,从剖析到实行,假如读者能从这个方面来进修这个实例,对今后编写年夜型的办理体系很有匡助。
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 |
|