湖南大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)本科畢業(yè)論文_第1頁(yè)
湖南大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)本科畢業(yè)論文_第2頁(yè)
湖南大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)本科畢業(yè)論文_第3頁(yè)
湖南大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)本科畢業(yè)論文_第4頁(yè)
湖南大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)本科畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、HUNAN UNIVERSITY畢 業(yè) 論 文題目:基于的新聞發(fā)布系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) 學(xué)生姓名 羅 某 某 學(xué) 號(hào) 123456 年級(jí)專業(yè) xx級(jí)計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)老師 某 老 師 指導(dǎo)組長(zhǎng) 某 老 師 二00九年八月二十六日目 錄摘要1關(guān)鍵詞1英文翻譯1前言3正文3一、基于Web的新聞發(fā)布系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的現(xiàn)狀及解決方案3二、基于的新聞發(fā)布系統(tǒng)的系統(tǒng)分析和總體設(shè)計(jì)4(一)系統(tǒng)分析4(二)系統(tǒng)的總體設(shè)計(jì)4三、基于的新聞發(fā)布系統(tǒng)的系統(tǒng)實(shí)現(xiàn)5(一)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)5(二)通用方法與屬性的定義6(三)用戶登錄的實(shí)現(xiàn)7(四)新聞的添加9(五)新聞的修改10(五)詳細(xì)頁(yè)13(六)主詳細(xì)頁(yè)的分頁(yè)13四、系統(tǒng)發(fā)

2、布與維護(hù)18(一)系統(tǒng)發(fā)布18(二)系統(tǒng)維護(hù)19五、結(jié)束語(yǔ)19參考文獻(xiàn)19致謝20基于的新聞發(fā)布系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) 羅某某指導(dǎo)老師:劉某某(湖南大學(xué),湖南 長(zhǎng)沙,410000)摘要 本文以一個(gè)簡(jiǎn)單的項(xiàng)目為例子,闡述了一個(gè)基于的新聞發(fā)布系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)的過(guò)程。首先從基于Web的新聞發(fā)布系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的現(xiàn)狀及解決方案入手,提出了現(xiàn)在Web的新聞發(fā)布系統(tǒng)面臨的問(wèn)題并指出了解決的方案。然后進(jìn)行了簡(jiǎn)單的系統(tǒng)分析,指出用ASP. NET開(kāi)發(fā)新聞發(fā)布系統(tǒng)的可行性和一些適當(dāng)?shù)倪x擇。本文以系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)為重點(diǎn)展開(kāi),從數(shù)據(jù)庫(kù)的實(shí)現(xiàn)、通用方法與屬性的定義、用戶登錄的實(shí)現(xiàn)、新聞的添加、修改以及主詳細(xì)頁(yè)的分頁(yè)等方面全面闡

3、述這一開(kāi)發(fā)過(guò)程。最后告訴讀者系統(tǒng)部署和系統(tǒng)維護(hù)的一般過(guò)程和方法,并在結(jié)束語(yǔ)中指出真實(shí)項(xiàng)目開(kāi)發(fā)與本文闡述的一般原理的不同。關(guān)鍵詞 ASP. NET系統(tǒng)分析 主詳頁(yè) 分頁(yè) C# IISThe Design and Development Based on News Publishing SystemAuthor: LuoxiangdongGuide Teacher: Liuhaisha(Hunan Uiversity, Changsha Hunan, 410000)Abstract In this article, a simple project as an example, describes

4、 a process of the design and development based on press release. First, according to the present situation and solution of the design and development based on Web News Publishing System, it proposes a question that the Web News Publishing System faces now and points out a plan of solution. Then with

5、 some simple systematic analyzing, it puts forward some suitable choices and the possibilities of the usage of to develop the News Publishing System. Focusing on the design and development of the System, this article unfolds, from the database implementation, the definition of common methods and pro

6、perties, the implementation of users logining, news addition, modification, the distinction between master detail pages and detailed pages and to many other aspects, it relates the whole process of the development. Finally, it tells the reader the general process and methodology of system deployment

7、 and maintenance, and in closing remarks it also points out the difference between the actual project development and general principles explained in this article. Key words , System Analysis, Master Details Page, C #, IIS前 言自1969年ARPAnet運(yùn)行以來(lái)的40年里,互聯(lián)網(wǎng)取得到了突飛猛進(jìn)、日新月異的發(fā)展。Web應(yīng)用是互聯(lián)上最有名的應(yīng)用之一,它自上世紀(jì)90年代初期誕生以

8、來(lái)同樣發(fā)展迅猛。中國(guó)以發(fā)出“越過(guò)長(zhǎng)城,走向世界”為內(nèi)容的第一封電子郵件為起點(diǎn),現(xiàn)在已發(fā)展成有近4億網(wǎng)民、三百多萬(wàn)家網(wǎng)站的網(wǎng)絡(luò)大國(guó)。在眾多的網(wǎng)站中,一般都有一個(gè)或多個(gè)新聞發(fā)布系統(tǒng)。并且,由于Web系統(tǒng)開(kāi)發(fā)的相似性,各大網(wǎng)站上的其它系統(tǒng),如Blog、公文發(fā)布系統(tǒng)等都與新聞發(fā)布系統(tǒng)類似。開(kāi)發(fā)新聞發(fā)布系統(tǒng)的方法、語(yǔ)言和架構(gòu)很多,其中以與JSP最有發(fā)展前途和應(yīng)用價(jià)值。本文以一個(gè)簡(jiǎn)單的新聞發(fā)布系統(tǒng)為例子,向讀者闡明基于的新聞發(fā)布系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和部署的全過(guò)程。本文所用操作系統(tǒng)為Windows Server 2003,所用Web服務(wù)器為,主要開(kāi)發(fā)工具為Microsoft Visual Studio 2005

9、,開(kāi)發(fā)平臺(tái)為Microsoft .NET Framework V,主要語(yǔ)言為C#和SQL,客戶端瀏覽器為Microsoft IE6.0和7.0。一、基于Web的新聞發(fā)布系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的現(xiàn)狀及解決方案Web開(kāi)發(fā)都是建立在 (HyperText Transfer Protocol)協(xié)議之上的,在客戶端一般都以標(biāo)準(zhǔn)的HTML(HyperText Mark-up Language)語(yǔ)言和JavaScript以及CSS(Cascading Style Sheets)作為載體來(lái)表達(dá)。客戶端如Microsoft IE、FireFox等瀏覽器解釋上述客戶端語(yǔ)言,將一個(gè)真正的圖形用戶界面呈現(xiàn)給用戶。不同的Web

10、開(kāi)發(fā)系統(tǒng)開(kāi)發(fā)不同之處一般體現(xiàn)在服務(wù)器端,包括服務(wù)器端的開(kāi)發(fā)語(yǔ)言、運(yùn)行環(huán)境、數(shù)據(jù)庫(kù)系統(tǒng)。目前服務(wù)器端的開(kāi)發(fā)語(yǔ)言與運(yùn)行環(huán)境主要有ASP、JSP、PHP,各種語(yǔ)言與環(huán)境各有其優(yōu)缺點(diǎn)。ASP是微軟于上世紀(jì)90年代后期發(fā)布的Web開(kāi)發(fā)語(yǔ)言和架構(gòu),由于其運(yùn)行環(huán)境要求低、配置簡(jiǎn)單、對(duì)開(kāi)發(fā)人員要求低而風(fēng)靡世界一時(shí)。但是,ASP有許多固有的缺點(diǎn),比如其書(shū)寫語(yǔ)言VBScript和Jscript都不是面向?qū)ο蟮摹⒕W(wǎng)頁(yè)運(yùn)行時(shí)每一次都要編譯、安全性低等。由于這些缺點(diǎn)其本身都無(wú)法克服,所以微軟在2000年中期推出了ASP的全新替換版本。是ASP的全新替換版本而不是其簡(jiǎn)單升級(jí),提供了諸于完全面向?qū)ο蟆⒖删幾g、完整的IDE支

11、持、更多的實(shí)用對(duì)象和高安全性等許多優(yōu)點(diǎn)。在基于微軟的開(kāi)發(fā)平臺(tái)上,大部分新的Web開(kāi)發(fā)都采用。可以預(yù)見(jiàn)未來(lái)一段時(shí)間里將是微軟平臺(tái)上的主流Web開(kāi)發(fā)架構(gòu),現(xiàn)在工作在Web設(shè)計(jì)、開(kāi)發(fā)和管理一線的計(jì)算機(jī)工程師都有必要掌握基于的系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的一般過(guò)程。二、基于的新聞發(fā)布系統(tǒng)的系統(tǒng)分析和總體設(shè)計(jì)(一)系統(tǒng)分析新聞發(fā)布系統(tǒng)的主要功能是實(shí)現(xiàn)將政府或者其它組織的實(shí)時(shí)內(nèi)容發(fā)布到互聯(lián)網(wǎng)上,主要內(nèi)容是文字和圖片。一般組織中的新聞不是特別多,可以采用Microsoft Office Access數(shù)據(jù)庫(kù)。大型組織的網(wǎng)站可能內(nèi)容特別多、訪問(wèn)量特別大、對(duì)安全性要求特別嚴(yán),一般可以采用Microsoft SQL Server

12、 2005/2008服務(wù)器型數(shù)據(jù)庫(kù)系統(tǒng)。本文為演示方便,采用Access數(shù)據(jù)庫(kù)。新聞發(fā)布系統(tǒng)只能運(yùn)行在Microsoft .NET Framework上,目前可供選擇的.NET Framework版本主要有1.0版、1.1版、2.0版、3.0版、3.5版。在目前選擇2.0版比較適合一般用戶,它開(kāi)發(fā)簡(jiǎn)單、網(wǎng)絡(luò)上實(shí)例多、功能實(shí)用。Microsoft .NET Framework目前只能運(yùn)行在Microsoft Server系統(tǒng)服務(wù)器上,可供選擇的有Windows 2000 Server、Windows Server 2003、Windows Server 2008。在目前選擇Windows Ser

13、ver 2003比較適合一般用戶,它安全、穩(wěn)定、價(jià)格相對(duì)便宜。開(kāi)發(fā)程序一般用到Microsoft Visual Studio開(kāi)發(fā)工具,目前可供選擇的有Visual S 2003、Visual Studio 2005、Visual Studio 2008。在目前選擇Visual Studio 2005比較適合一般用戶,它穩(wěn)定、與.NET Framework V結(jié)合性好、用戶群體大。上述分析結(jié)果適合大部分組織和開(kāi)發(fā)人員,也滿足大部分組織對(duì)新聞發(fā)布系統(tǒng)的要求。(二)系統(tǒng)的總體設(shè)計(jì)新聞發(fā)布系統(tǒng)一般包括主詳細(xì)頁(yè),用于顯示標(biāo)題以引導(dǎo)用戶瀏覽新聞。包括一個(gè)詳細(xì)頁(yè),用于顯示詳細(xì)內(nèi)容以供用戶瀏覽。另外,新聞發(fā)布

14、系統(tǒng)正式運(yùn)行后,其內(nèi)容要能在線添加,故需要一個(gè)后臺(tái)管理系統(tǒng)。在管理后臺(tái)之前,需要有一個(gè)登錄程序以便驗(yàn)證用戶的權(quán)限。后臺(tái)管理系統(tǒng)一般包括用戶對(duì)新聞內(nèi)容及其屬性的修改,對(duì)登錄用戶名與密碼的修改。流程圖如下:登錄成功后臺(tái)(插入,管理)用戶登錄插入成功詳細(xì)頁(yè)主詳細(xì)頁(yè)更 新三、基于的新聞發(fā)布系統(tǒng)的系統(tǒng)實(shí)現(xiàn)(一)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)打開(kāi)Microsoft Office Access 2003新建一個(gè)數(shù)據(jù)庫(kù),命名為NewsSystem.mdb。如果所用Access版本是Microsoft Office Access 2007,其默認(rèn)的文件后綴名已變成.accdb。.accdb才可使用。但目前大部分服務(wù)器上并不提供此

15、程序,故在Microsoft Office Access 2007中仍然需要建立成Microsoft Office Access 2003的.mdb格式。一般一條新聞包含標(biāo)題、作者、發(fā)布時(shí)間、瀏覽次數(shù)等基本屬性,還可能包含像“是否是熱點(diǎn)新聞”、“是否是站長(zhǎng)所推薦的內(nèi)容”等附加屬性。在剛才所建立的NewsSystem.mdb中新建一個(gè)表,名稱為TableArticle,將ID設(shè)為主鍵以自動(dòng)編號(hào),并設(shè)置相應(yīng)的字段,如圖:另新建一個(gè)表用于保存用戶名與密碼等信息,一般有唯一ID號(hào)、用戶名和密碼等屬性。在中新建一個(gè)表,名稱為TableUser,將ID設(shè)為主鍵以自動(dòng)編號(hào),并設(shè)置相應(yīng)的字段,如圖:(二)通用

16、方法與屬性的定義在一個(gè)計(jì)算機(jī)軟件系統(tǒng)中,一般有一些方法與屬性是通用的。支持通用方法與屬性的定義,.NET平臺(tái)支持DLL文件的自動(dòng)注冊(cè),是.NET平臺(tái)的一員自然也支持。在已編譯的系統(tǒng)里,通用方法被放置在Bin目錄(二進(jìn)制目錄)中。在未編譯的系統(tǒng)里,程序員應(yīng)該將通用方法所在的類放置在App_Code(應(yīng)用程序代碼)目錄中。具體操作是在Visual Studio 2005先建立一個(gè)網(wǎng)站,選擇語(yǔ)言為C#,并將網(wǎng)站名稱命名為NewsSystem。在NewsSystem下新建立一個(gè)目錄,命名為App_Code。在App_Cod下建立一個(gè)類(Class),命名為DB。在DB中用C#語(yǔ)言定義兩個(gè)常用的通用方法

17、和屬性:(1)數(shù)據(jù)庫(kù)連接字符串屬性StrConpublic static string StrCon /數(shù)據(jù)庫(kù)連接字符串 get string strCon = Provider=Microsoft.Jet.OleDb.4.0; strCon += Data Source=; strCon += D:/ NewsSystem/NewsSystem.mdb; /假設(shè)數(shù)據(jù)庫(kù)放在D:/ NewsSystem目錄下 /實(shí)際開(kāi)發(fā)時(shí)此路徑一般寫入新聞 return strCon; (2)訪問(wèn)數(shù)據(jù)庫(kù)的通用方法public static DataTable Table(string sql) OleDbDat

18、aAdapter objAda = new OleDbDataAdapter(sql, DB.StrCon); / DB.StrCon為上面定義的StrCon屬性 objAda.TableMappings.Add(Table, Table2); DataSet objDs = new DataSet(); objAda.Fill(objDs); objAda.Dispose(); return objDs.TablesTable2;上述方法與屬性定義在名為DB的類中,DB類的屬性為公共靜態(tài),以便外部對(duì)象可訪問(wèn)。構(gòu)造函數(shù)為私有,以防被外部對(duì)象實(shí)例化。以上的Table(string)方法使用Ole

19、Db數(shù)據(jù)提供程序訪問(wèn)數(shù)據(jù)庫(kù),OleDb數(shù)據(jù)提供程序能訪問(wèn)所有的關(guān)系型數(shù)據(jù)庫(kù),包括Access、FoxPro等。要訪問(wèn)SqlServer、Oracle等服務(wù)器型數(shù)據(jù)庫(kù),有更快、更強(qiáng)、更安全的實(shí)用對(duì)象SqlDataAdapter可使用。除訪問(wèn)數(shù)據(jù)庫(kù)的通用方法與屬性外,一般還需要定義一些與本應(yīng)用屬性相關(guān)的方法與屬性,最常見(jiàn)的是獲取網(wǎng)站當(dāng)前運(yùn)行的虛擬路徑的字符串,代碼如下:/應(yīng)用程序的根虛擬路徑,此屬性返回的值總是以一個(gè)“/”結(jié)尾public static string WebRootPath() string result = HostingEnvironment.ApplicationVirtua

20、lPath; if (resultresult.Length - 1 != /) /當(dāng)應(yīng)用程序的目錄是虛擬目錄時(shí), /返回時(shí)帶有一斜杠 /當(dāng)應(yīng)用程序處于根根目錄時(shí)則沒(méi)有一斜杠 result += /; return result;此方法在一般網(wǎng)站中調(diào)用非常多,原因是開(kāi)發(fā)網(wǎng)站時(shí)所用的虛擬路徑與網(wǎng)站真正運(yùn)行時(shí)的虛擬路徑往往不同。(三)用戶登錄的實(shí)現(xiàn)在。在Login.aspx的設(shè)計(jì)器插入所需要的控件,最后效果如下圖:其中輸入用戶名的asp:TextBox控制命名為TextBoxUid,輸入密碼的asp:TextBox控制命名為TextBoxPwd,登錄的asp:Button控制命名ButtonLog

21、in,其事件句柄OnClick=ButtonLogin_Click。當(dāng)用戶輸入用戶名與密碼并單擊登錄后,Web窗體開(kāi)始執(zhí)行下列ButtonLogin_Click,代碼如下:protected void ButtonLogin_Click(object sender, EventArgs e) string strUid = this.TextBoxUid.Text; string strPwd = this.TextBoxPwd.Text; string sql = select from TableUser ; sql += where StrUid= +strUid + and StrPw

22、d=+strUid +; DataTable dt = DB.Table(sql); if (dt.Rows.Count = 1) /驗(yàn)證成功,建立會(huì)話變量 this.SessionLoginSuccess = true;/用戶登錄成功為真 this.Response.Redirect(Insert.aspx); /重定向到Insert.aspx頁(yè)面,此頁(yè)用于添加新聞 else this.Response.Write(登錄未成功,用戶名或者密碼錯(cuò)); /驗(yàn)證未成功,提示用戶名或者密碼錯(cuò) 在用戶輸入用戶名與密碼時(shí)一般要對(duì)輸入的內(nèi)容作簡(jiǎn)單的限定,即只能輸入字母、數(shù)字、下劃線、漢字等字符,而不能輸入

23、單引號(hào)等其它字符,代碼如下。function checkKeyCode()var n = event.keyCode;var c = n=48&n=65&n=97&n=122);c |= (n=95)|(n=13)|(n=64);if(c) if(n = 13) fnCts ();/ 此方法調(diào)用服務(wù)器數(shù)據(jù),用Ajax實(shí)現(xiàn) return false; return true;alert(只能輸入字母、數(shù)字、下劃線、漢字。);return false;方法checkKeyCode()在文本框發(fā)生onkeypress事件時(shí)執(zhí)行。(四)新聞的添加用戶登錄成功后就重定向到了頁(yè)面,這一頁(yè)面用于向數(shù)據(jù)庫(kù)中插

24、入新的新聞?dòng)涗?。由于這一頁(yè)其實(shí)是一個(gè)管理頁(yè),所以除了插入新聞?dòng)涗浀墓δ芡猓€提供了如“修改記錄”、“刪除記錄”、“管理網(wǎng)站文件”、“修改用戶名與密碼”等功能。限于篇幅,在此不一一展開(kāi)。此頁(yè)的效果如下圖:“添加文章”是一個(gè)綁定了JavaScript回發(fā)事件的服務(wù)器鏈接,回發(fā)事件是中的重要概念。其功能用JavaScript實(shí)現(xiàn),核心代碼是:var theForm = document.formsformCenter;if (!theForm) theForm = document.formCenter;function _doPostBack(eventTarget, eventArgument)

25、 /回發(fā)事件 if (!theForm.onsubmit | (theForm.onsubmit() != false) ET.value = eventTarget; theForm._EVENTARGUMENT.value = eventArgument; theForm.submit(); 當(dāng)管理員單擊“添加文章”鏈接時(shí),就會(huì)把當(dāng)前頁(yè)面上的必要信息以視圖狀態(tài)(ViewStatus,用表單的隱藏域保存)數(shù)據(jù)的形式發(fā)送到服務(wù)器。服務(wù)器接收到視圖狀態(tài)數(shù)據(jù)后開(kāi)始分析,會(huì)發(fā)現(xiàn)用戶單擊是的“添加文章”鏈接。然后執(zhí)行一個(gè)事件(Event)監(jiān)聽(tīng)方法,鏈接的服務(wù)器標(biāo)記中指定單擊時(shí)執(zhí)行的方法的形式為OnCl

26、ick=LinkButtonInsert_OnClick。LinkButtonInsert_OnClick()方法的代碼如下:protected void LinkButtonInsert_OnClick(object sender, EventArgs e) string strTitle = 記錄未初始化,請(qǐng)點(diǎn)擊修改; string dtmAddTime = DateTime.Now.ToString();/當(dāng)前時(shí)間 string sql = insert into TableArticle ; sql += (strTitle, lngClickCount, dtmAddTime, ;

27、sql += isHot, isCommand, isPhotoAndText) ; sql += values ( + strTitle + , 0, + dtmAddTime + ; sql += , 0, 0, 0); DB.Table(sql);/執(zhí)行sql語(yǔ)句 this.Response.Redirect(ShowSmallClass.aspx);(五)新聞的修改用戶插入一條記錄成功后,就重定向到了,此頁(yè)用于顯示某個(gè)小類型的主詳細(xì)信息。剛插入的記錄會(huì)顯示在最上方,其標(biāo)題是“記錄未初始化,請(qǐng)點(diǎn)擊修改”。點(diǎn)擊此鏈接進(jìn)入詳細(xì)頁(yè)。在上判斷當(dāng)前管理員是否已登錄成功,如果成功則顯一個(gè)“修改”,如

28、圖:上述圖中的“修改”在管理員沒(méi)有成功登錄時(shí)不會(huì)顯示,現(xiàn)在管理已成功登錄,所以可以單擊“修改”,進(jìn)入更新內(nèi)容頁(yè)。頁(yè)的邏輯比較復(fù)雜,在客戶端要用大量的JavaScript與CSS處理,在服務(wù)器端要用大量的C#與SQL與處理。最后效果如圖:要實(shí)現(xiàn)上述功能,要執(zhí)行的代碼很多,在客戶端實(shí)現(xiàn)一個(gè)編輯器的關(guān)鍵代碼是:第一、在html文檔中插入下列代碼,它在頁(yè)面上形成一個(gè)空白的內(nèi)置幀。第二、編寫下列JavaScrpr代碼,body_onLoad()方法在頁(yè)面載入時(shí)執(zhí)行,paddingOriginalText()是一個(gè)初始化編輯器的方法,如下所示它在body_onLoad()中被調(diào)用。function bod

29、y_onLoad() var objHtmlEditor = findObj(HtmlEditor); objHtmlEditor.document.designMode=on; setTimeout(paddingOriginalText(),500);function paddingOriginalText() var objHtmlEditor = findObj(HtmlEditor); /findObj()函數(shù)中引入,作用是在html上找到一個(gè)對(duì)象 var objHiddenFieldResult = findObj(HiddenFieldResult); objHtmlEditor

30、.document.body.innerHTML = objHiddenFieldResult.value; objHtmlEditor.document.body.style.fontSize = 14px; objHtmlEditor.document.body.style.lineHeight = 28px; objHtmlEditor.document.body.focus();在服務(wù)器端將內(nèi)容更新到數(shù)據(jù)中的關(guān)鍵代碼是:protected void ButtonOK_OnClick(Object Src, EventArgs E) string id = ButtonOK.Comman

31、dArgument.Trim(); string strTitle = TextBoxTitle.Text.Replace(, ); string strContent = HiddenFieldResult.Value.Replace(, ); string strAuthor = TextBoxAuthor.Text.Replace(, ); string strSource = TextBoxSource.Text.Replace(, ); string lngClickCount = TextBoxClickCount.Text.Replace(, ); string dtmAddTi

32、me = DateTime.Now.ToString(); string strInputMan = TextBoxInputMan.Text.Replace(, ); string isHot = RadioButtonListHot.SelectedItem.Value; string isPhotoAndText = RadioButtonListPhotoAndText.SelectedItem.Value; string isCommand = RadioButtonListCommand.SelectedItem.Value; double orderBy = double.Par

33、se(this.TextBoxOrderBy.Text.Trim(); double userAuthority = double.Parse(this.TextBoxUserAuthority.Text.Trim(); string isVisibleSide = RadioButtonListIsVisibleSide.SelectedItem.Value; if (strTitle.Length = 0) strTitle = 無(wú)標(biāo)題; string sql = update TableArticle ; sql += set isPhotoAndText = + isPhotoAndT

34、ext; sql += , isCommand = + isCommand; sql += , isHot = + isHot; sql += , strInputMan = + strInputMan + ; sql += , dtmAddTime = + DateTime.Now.ToString() + ; sql += , lngClickCount = + lngClickCount; sql += , strSource = + strSource + ; sql += , strAuthor = + strAuthor + ; sql += , strContent = + st

35、rContent + ; sql += , strTitle = + strTitle + ; sql += , OrderBy= + orderBy; sql += ,UserAuthority= + userAuthority; sql += , IsVisibleSide = + isVisibleSide; sql += where (Id = + id + ); DB.Table(sql); Response.Redirect(Detail.aspx?ID= + id); /重定向到頁(yè)上面所列的ButtonOK_OnClick方法在單擊編輯器下部的服務(wù)器端按鈕執(zhí)行。(六)詳細(xì)頁(yè)在上述

36、的更新內(nèi)容頁(yè)中有一個(gè)確定按鈕(限于篇幅上面截圖時(shí)未予顯示,在內(nèi)容編輯框最下方),管理員編輯完成后單擊確定按鈕就進(jìn)入了前面已提到過(guò)的詳細(xì)頁(yè)。效果如圖:頁(yè)的代碼一般比較簡(jiǎn)單,一般在一個(gè)重復(fù)區(qū)域asp:Repeater內(nèi)用這樣的語(yǔ)句就可實(shí)現(xiàn)一般的功能。上圖中有一個(gè)瀏覽次數(shù),此次數(shù)是用戶每瀏覽一次本新聞就將其值加1,代碼如下:protected void AddClickCount(int id) /將點(diǎn)擊次數(shù)加1 string sql = ; sql = update TableArticle set lngClickCount=lngClickCount+1; sql += where id= +

37、 id;/id為新聞的id號(hào) DB.Table(sql);/執(zhí)行sql語(yǔ)句(七)主詳細(xì)頁(yè)的分頁(yè)在前面已提到頁(yè)用于顯示某個(gè)小類型的主詳細(xì)信息,一般情況下是將新聞的標(biāo)題逐條顯示出來(lái)。有一個(gè)問(wèn)題是當(dāng)新聞的條數(shù)很多時(shí),一頁(yè)就顯示不下。這時(shí)需要對(duì)多條新聞?dòng)涗涍M(jìn)行分頁(yè),而中提供的分頁(yè)方法DataList或者DataGrid因含有大量視圖狀態(tài)信息而在一般網(wǎng)站中不適用。這里提供一種自定義的分頁(yè)方法,其效果圖如下:實(shí)現(xiàn)此分頁(yè)效果的關(guān)鍵代碼/ Pager類對(duì)一個(gè)數(shù)據(jù)表進(jìn)行分頁(yè),返回指定頁(yè)面大小的指定頁(yè)碼public class Pager private int Page = 1;/當(dāng)前頁(yè)private int

38、PageSize = 5;/默認(rèn)的頁(yè)面大小private DataTable DT;/要篩選的數(shù)據(jù)表private int StartIndex;/在數(shù)據(jù)表中被選中的數(shù)據(jù)的起始索引private int EndIndex;/在數(shù)據(jù)表中被選中的數(shù)據(jù)的結(jié)束索引private int StartPage = 1;/當(dāng)前數(shù)據(jù)表分頁(yè)后的起始頁(yè)碼,此項(xiàng)總為1private int EndPage;/當(dāng)前數(shù)據(jù)表分頁(yè)后的結(jié)束頁(yè)碼public bool IsNeedPage;/是否需要分頁(yè)public Pager(DataTable _dt, int _page, int _pageSize) /構(gòu)造函數(shù) th

39、is.DT = _dt; this.Page = _page; this.PageSize = _pageSize; double d = (double)(this.DT.Rows.Count / (double)_pageSize); this.EndPage = (int)Math.Ceiling(d); if (this.Page this.EndPage) this.Page = this.EndPage; this.StartIndex = (this. 1) * this.PageSize; this.EndIndex = this.StartIndex + this.PageS

40、ize - 1; if (this.StartIndex DT.Rows.Count - 1) this.EndIndex = DT.Rows.Count - 1; if (this.DT.Rows.Count = this.PageSize) this.IsNeedPage = false; else this.IsNeedPage = true; public DataView GetDV() /供外部調(diào)用,返回用于當(dāng)前頁(yè)面的數(shù)據(jù)視圖 if (this.IsNeedPage = false) /此時(shí)不需要分頁(yè) return this.DT.DefaultView; this.DT.Colu

41、mns.Add(Luoxiangdong_Visible, typeof(bool); for (int i = this.StartIndex; i = this.EndIndex; i+) this.DT.RowsiLuoxiangdong_Visible = true; DataView dv = new DataView(this.DT); dv.RowFilter = Luoxiangdong_Visible=true; DataTable dt2 = dv.ToTable(); dt2.Columns.Remove(Luoxiangdong_Visible); this.DT.Di

42、spose(); return dt2.DefaultView;返回處理后的數(shù)據(jù)視圖public string GetPages(string url, string target)/供外部調(diào)用函數(shù) string s = ; if (this.IsNeedPage = false) return ; s = ; s += 【項(xiàng):; s += this.GetStartIndexPrompt() + -; s += (this.EndIndex + 1) + /; s += this.DT.Rows.Count; s += 】頁(yè):; s += this.Page + / + this.EndPa

43、ge + 頁(yè); s += this.GetPagesSelect(url, target); s += + this.GetPagesLink(url, target); s += + this.GetPagesGoToUrl(url, target); s += ; return s; private int GetStartIndexPrompt() /供GetPages調(diào)用 /獲取起始索引的提示,當(dāng)數(shù)據(jù)表大小為0時(shí),要特殊處理 int result = 0; if (this.DT.Rows.Count != 0) result = this.StartIndex + 1; return

44、 result;private string GetPagesGoToUrl(string url, string target) /供GetPages調(diào)用,獲取分頁(yè)導(dǎo)航的轉(zhuǎn)到一個(gè)url的部分 string s = ; s += function ButtonGo_Click(); s += var objTextfieldPage = ; s += document.getElementById(TextfieldPage); s += var value = objTextfieldPage.value; s += var intValue = parseInt(value); s +=

45、if(isNaN(intValue); s += alert(請(qǐng)輸入一個(gè) 1 到 ; s += this.EndPage + 之間的整數(shù)!); s += objTextfieldPage.focus();return false; s += if(intValue; s += this.EndPage; s += )alert(無(wú)效的頁(yè)碼,要求必須是 1 到 ; s += this.EndPage; s += 之間的整數(shù)。nn將使用最接近的數(shù)值!); s += if(intValue; s += this.EndPage + )intValue= + this.EndPage + ; s += location.href = + url + &Page=+intValue; s += 轉(zhuǎn)到; s += ; return s;private string GetPagesSelect(string url, string target) /供GetPages調(diào)用,獲取分頁(yè)導(dǎo)航的下拉列表部分 string

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論