版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第24章廣告模塊設(shè)計(jì)廣告能夠?yàn)榫W(wǎng)頁帶來很多的增色功能效果和盈利,廣告模塊的設(shè)計(jì)對(duì)網(wǎng)站來說非常重要,一個(gè)網(wǎng)站 不可能只有一個(gè)廣告或者網(wǎng)站的廣告還需要手動(dòng)增加和刪除。廣告模塊需要隨機(jī)的獲取系統(tǒng)廣告或者能夠在相應(yīng)的位置增加廣告來實(shí)現(xiàn)更多廣告效果。24.1 學(xué)習(xí)要點(diǎn)廣告模塊需要涉及到一些 ASP.NET 3.5的基本知識(shí),如果要仔細(xì)學(xué)習(xí)廣告模塊的開發(fā),需要詳細(xì)了 解本書的一些章節(jié)知識(shí),這些章節(jié)如下所示:ASP .NET的網(wǎng)頁代碼模型。Web窗體基本控件。數(shù)據(jù)庫基礎(chǔ)。ADO.NET常用對(duì)象。Web窗體數(shù)據(jù)控件。ASP.NET內(nèi)置對(duì)象。用戶控件自定義控件廣告模塊制作的是一個(gè)或多個(gè)自定義控件,這樣在多個(gè)不同
2、的頁面中就能夠快速的使用控件進(jìn)行廣告開發(fā),在基本了解了以上章節(jié)的知識(shí)點(diǎn)后,就能夠熟練學(xué)習(xí)和開發(fā)此模塊。24.2系統(tǒng)設(shè)計(jì)廣告系統(tǒng)是一個(gè)非常重要的系統(tǒng),隨著網(wǎng)站的發(fā)展,如果網(wǎng)站需要實(shí)現(xiàn)盈利,就可以通過發(fā)布和獲取廣告信息來得到更多的盈利。管理人員希望在后臺(tái)管理中,添加廣告信息,包括文字廣告和圖片廣告,這些廣告能夠按照一定的順序隨機(jī)的進(jìn)行展現(xiàn),并且當(dāng)用戶訪問網(wǎng)站時(shí),應(yīng)該能夠在頁面中尋找到相應(yīng) 的廣告并且點(diǎn)擊廣告。24.2.1模塊功能描述在網(wǎng)站系統(tǒng)的發(fā)展過程中,廣告投放是必不可少的一部分,因?yàn)楝F(xiàn)在的絕大部分網(wǎng)站都需要通過廣 告來盈利。不僅如此,廣告還能夠絕佳的展現(xiàn)網(wǎng)站現(xiàn)有的信息,如果網(wǎng)站是一個(gè)商城類型的
3、網(wǎng)站,那么 廣告在這個(gè)時(shí)候還能夠?yàn)樽约旱木W(wǎng)站展現(xiàn)廣告以達(dá)到宣傳自己網(wǎng)站的目的。廣告的展現(xiàn)過程需要分幾個(gè)類型的廣告展現(xiàn),最常見的是文字廣告,文字廣告是最常用也是最基本 的廣告類型,但是文字廣告比較多的時(shí)候會(huì)引起用戶的反感。除了文字廣告還有圖片廣告,圖片廣告能 夠引起網(wǎng)站用戶或者是消費(fèi)者的興趣,因?yàn)閳D片廣告一目了然并且容易被網(wǎng)站用戶發(fā)現(xiàn)和查看,如果圖 片廣告制作的比較精良,那么會(huì)極大的提高用戶的興趣并提高點(diǎn)擊量。在廣告模塊的設(shè)計(jì)中,考慮到有 不同的廣告類型和展現(xiàn)方式,通常情況下有以下三種廣告展現(xiàn)方式。文字廣告:僅向用戶展現(xiàn)文字廣告。圖片廣告:僅向用戶展現(xiàn)圖片廣告。 圖文廣告:隨機(jī)的向用戶展現(xiàn)文字或
4、圖片廣告。文字廣告和圖片廣告都是單純的廣告形式,只向頁面中展現(xiàn)文字或者圖片,提供一個(gè)超連接即可, 而圖文廣告能夠隨機(jī)的展現(xiàn)文字廣告或圖片廣告,當(dāng)用戶將頁面刷新或者緩存更新時(shí),對(duì)用戶展現(xiàn)的廣 告是不同的。24-1所示。圖24-1廣告發(fā)布流程/ "I由于廣告模塊是網(wǎng)站的管理者進(jìn)行發(fā)布的,開發(fā)人員可以將廣告模塊制作成為自定義控件,使用自 定義控件可以允許管理者或開發(fā)人員進(jìn)行管理或發(fā)布,對(duì)于不同的廣告類型,可以考慮不同的自定義控 件。而對(duì)于管理員而言,廣告發(fā)布流程是比較簡(jiǎn)單的,如圖正如圖24-1所示,對(duì)于管理人員并無需做復(fù)雜的操作,管理人員只需要在后臺(tái)編寫相應(yīng)的廣告類 型、廣告代碼和廣告標(biāo)題
5、等廣告模塊需要的字段,然后進(jìn)行廣告的發(fā)布就能夠在頁面呈現(xiàn)了,但是對(duì)于 開發(fā)人員來說,要讓這個(gè)過程能夠順利的進(jìn)行需要在頁面呈現(xiàn)中進(jìn)行篩選。如果是文字廣告,就需要篩 選出文字廣告和廣告說明,如果是圖片廣告,就需要篩選出圖片和超鏈接,對(duì)于不同的廣告類型開發(fā)人 員必須篩選出不同的廣告并呈現(xiàn)在頁面中。所以對(duì)于開發(fā)人員可以選擇如下兩種方案進(jìn)行廣告模塊的開發(fā)。自定義控件:開發(fā)人員可以為不同的廣告類型進(jìn)行自定義控件的開發(fā),對(duì)于頁面編程人員可以 拖動(dòng)自定義控件到相應(yīng)的位置進(jìn)行廣告的呈現(xiàn),但是這樣制作就有可能在頁面中呈現(xiàn)多個(gè)相同 的廣告。HTML固定投放位置:開發(fā)人員可以固定投放位置,例如網(wǎng)站頭部廣告、網(wǎng)站底部廣
6、告和網(wǎng)站側(cè)面廣 告,雖然這樣做能夠降低網(wǎng)站的重復(fù)廣告的頻率,但是這樣制作無疑只能固定死網(wǎng)站的 代碼,也顯得不夠靈活。雖然網(wǎng)站廣告投放沒有最好的解決方案,通常開發(fā)人員也會(huì)通過頁面的修改進(jìn)行網(wǎng)站廣告的投放, 但是這里還是選擇一個(gè)折中的方案,就是自定義控件的開發(fā),自定義控件的開發(fā)可以通過編程的方法在 頁面中進(jìn)行廣告的控制和篩選,相比固定投放位置而言,在維護(hù)過程中更加的方便。從上述流程中可以 基本規(guī)劃幾個(gè)自定義控件:文字廣告自定義控件:專門用于呈現(xiàn)文字廣告的自定義控件。 圖片廣告的自定義控件:專門用于呈現(xiàn)圖片廣告的自定義控件。 圖文廣告的自定義控件:專門用戶呈現(xiàn)圖文廣告的自定義控件。 高級(jí)廣告呈現(xiàn)控件
7、:可以通過屬性進(jìn)行控制廣告的呈現(xiàn)。廣告發(fā)布頁面:管理員可以通過該頁面進(jìn)行廣告發(fā)布。廣告呈現(xiàn)頁面:管理員發(fā)布的廣告能夠在一個(gè)或多個(gè)頁面進(jìn)行呈現(xiàn)。 廣告管理頁面:管理員能夠?yàn)椴恍枰褂玫膹V告進(jìn)行管理。通過編寫多個(gè)自定義控件進(jìn)行廣告控制,也可以通過編寫一個(gè)廣告控件進(jìn)行廣告控制,同時(shí)管理員 能夠方便在后臺(tái)進(jìn)行廣告發(fā)布并能夠輕松的呈現(xiàn)在前臺(tái)頁面。2422 模塊流程分析在對(duì)業(yè)務(wù)進(jìn)行了基本的劃分之后,可以為模塊進(jìn)行基本的流程分析,包括這個(gè)模塊中最基本的函數(shù),24-2所示。以及這些函數(shù)在頁面中是如何執(zhí)行的。其中廣告模塊中需要開發(fā)廣告發(fā)布頁面,廣告發(fā)布頁面能夠讓管 理員快速的發(fā)布廣告,并選擇廣告發(fā)布的類型和位置
8、,這樣就能夠輕松進(jìn)行廣告的發(fā)布,同時(shí)管理員也 應(yīng)該能夠進(jìn)行廣告的管理,包括修改和刪除,如圖林廣告圖24-2 管理員發(fā)布流程588管理員能夠在廣告后臺(tái)發(fā)布廣告、修改廣告和刪除廣告,當(dāng)對(duì)廣告進(jìn)行修改后可以選擇對(duì)廣告再次 進(jìn)行投放,投放完成后就能夠在頁面進(jìn)行呈現(xiàn)。對(duì)于上述流程可以分別開發(fā)若干個(gè)頁面進(jìn)行功能整合, 如圖24-3所示。modi.aspkpoitedJSpK圖24-3管理員操作頁面劃分管理員在后臺(tái)只需要進(jìn)行廣告管理等操作,而對(duì)于頁面呈現(xiàn),只需要從自定義控件中選取相應(yīng)的數(shù) 據(jù)并通過編程的方法進(jìn)行整合呈現(xiàn)即可,而其中最重要的是如何進(jìn)行頁面呈現(xiàn),只有靈活的將同類廣告 進(jìn)行頁面呈現(xiàn)才能夠避免重復(fù)廣
9、告的出現(xiàn)。24.3數(shù)據(jù)庫設(shè)計(jì)對(duì)于廣告模塊的數(shù)據(jù)庫設(shè)計(jì)可能比較的復(fù)雜,其復(fù)雜并不在數(shù)據(jù)庫設(shè)計(jì)的本身上,數(shù)據(jù)庫本質(zhì)上就 是一種存儲(chǔ)數(shù)據(jù)的容器,而如何進(jìn)行數(shù)據(jù)篩選在廣告模塊中是一個(gè)最為重要的過程,對(duì)于數(shù)據(jù)庫的設(shè)計(jì) 就需要考慮到廣告模塊中的數(shù)據(jù)篩選。24.3.1數(shù)據(jù)庫設(shè)計(jì)分析對(duì)于廣告模塊的數(shù)據(jù)庫設(shè)計(jì), 需要加強(qiáng)數(shù)據(jù)條目的篩選功能, 以選擇不同類型的廣告的不同呈現(xiàn)方式。在廣告設(shè)計(jì)中,需要設(shè)計(jì) 和adclass其中ads表用于存放廣告數(shù)據(jù),其字段如下所示。表示廣告的ID號(hào),為自動(dòng)增長(zhǎng)的主鍵。表示廣告發(fā)布的時(shí)間。 表示廣告發(fā)布結(jié)束的時(shí)間。作為廣告的標(biāo)識(shí)而存在,用于表示廣告的名稱。 作為廣告的內(nèi)容而存在,可以
10、是文字也可以是 作為廣告的備注而存在,用于標(biāo)識(shí)備注信息。 作為圖片廣告的圖片連接。作為外部連接的廣告的地址。作為廣告的標(biāo)題。例如數(shù)據(jù)庫中對(duì)廣告的類型進(jìn)行篩選,3個(gè)表,這三個(gè)表分別為ads、type廣告編號(hào):發(fā)布時(shí)間:結(jié)束時(shí)間:廣告名稱:廣告內(nèi)容:廣告?zhèn)渥ⅲ簭V告圖片:廣告連接:廣告標(biāo)題:HTML代碼。廣告html :作為廣告呈現(xiàn)的 HTML代碼,可以為 JavaScript代碼。 廣告類型:作為廣告的類型而存在,類型沒描述在type表中。聚合類型:作為廣告的廣告 ID而存在,用于歸納同類廣告。 其中type表用于存放廣告的類型數(shù)據(jù),其字段如下所示。分類編號(hào):表示廣告類型的ID號(hào),為自動(dòng)增長(zhǎng)的主鍵
11、。分類名稱:表示廣告類型的描述,例如文字、圖片等。其中adclass表示廣告顯示的類型,使用ads表的adid表示可以表示廣告在頁面中呈現(xiàn)的歸納,其字段如下所示。聚合分類編號(hào):表示廣告類型的 ID號(hào),為自動(dòng)增長(zhǎng)的主鍵。 分類名稱:表示廣告存放類型的描述,例如頭部廣告、底部廣告。對(duì)于廣告模塊來說,其數(shù)據(jù)表比較多,為了方便維護(hù)和擴(kuò)展,就必須要讓一些需要長(zhǎng)期修改的字段 進(jìn)行外部連接。這樣就能夠極大的加強(qiáng)數(shù)據(jù)庫中數(shù)據(jù)的健壯性和低耦合性。注意:良好的數(shù)據(jù)庫設(shè)計(jì)可能需要同時(shí)創(chuàng)建多個(gè)表進(jìn)行一個(gè)功能的描述,雖然在數(shù)據(jù)庫設(shè)計(jì)時(shí)這樣 的方法比較麻煩,但是在維護(hù)和開發(fā)中,這樣會(huì)帶來很多的便利。24.3.2數(shù)據(jù)庫表的
12、創(chuàng)建創(chuàng)建表可以通過 SQL Server Management Studio視圖進(jìn)行創(chuàng)建也可以通過SQL Server ManagementStudio查詢使用SQL語句進(jìn)行創(chuàng)建。廣告模塊需要?jiǎng)?chuàng)建多個(gè)表進(jìn)行廣告的描述,在創(chuàng)建表之前首先需 要?jiǎng)?chuàng)建一個(gè)ad數(shù)據(jù)庫,數(shù)據(jù)庫創(chuàng)建完成后就能夠在數(shù)據(jù)庫中創(chuàng)建表了。這里首先需要?jiǎng)?chuàng)建一個(gè)ads表,皈©a? I 仁 JClirt弓*rfnrp-arw-"3件-lua-rha-jBEliiLntcntlnvard-difTnAX)IF恂 rHU 甘 EhaJtHfl©pcLrt出dpC-:Se可丿曠出臣D匚)Pr>ii!n吋Xh
13、汕陽町PwePtP34P廠圖24-4 ads表結(jié)構(gòu)該表用于存儲(chǔ)廣告模塊中的廣告信息,如圖24-4所示。正如圖23-4所示,其中的字段意義如下所示。id:表示廣告的ID號(hào),為自動(dòng)增長(zhǎng)的主鍵。time :用于標(biāo)識(shí)廣告的開始時(shí)間廣告將不再被呈現(xiàn)。en dtime :用于標(biāo)識(shí)廣告的結(jié)束時(shí)間,當(dāng)時(shí)間到達(dá)該時(shí)間后,name:用于標(biāo)識(shí)廣告的名稱,這個(gè)名稱在后臺(tái)管理中可以進(jìn)行辨認(rèn)。con te nt:作為廣告的內(nèi)容而存在,管理員能夠在該字段進(jìn)行廣告內(nèi)容的編寫。infor:作為廣告的備注而存在,管理員和管理員之間能夠通過備注閱讀該廣告是什么廣告。P icture:作為圖片廣告的圖片連接。url :作為外部連接的
14、廣告的地址,用戶單擊廣告時(shí)能夠跳轉(zhuǎn)到相應(yīng)的連接。title :作為廣告的標(biāo)題,呈現(xiàn)在頁面之中。html :作為廣告呈現(xiàn)的 HTML代碼,可以為JavaScript代碼,當(dāng)廣告為文字廣告時(shí),將呈現(xiàn)HTML。 type:作為廣告的類型而存在,類型沒描述在type表中。adid :作為廣告的廣告ID而存在,用于歸納同類廣告,一個(gè)頁面可以呈現(xiàn)一種或多種類型的廣 告。SQL語句如下所示。上述字段描述了相應(yīng)的字段在實(shí)際應(yīng)用中的意義,創(chuàng)建表的;USE adGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/創(chuàng)建ads表CREATE TABLE dbo.ads(id
15、 int IDENTITY(1,1) NOT NULL,time datetime NULL,endtime datetime NULL,name nvarchar(50) COLLATE Chinese_ PRC_CI_AS NULL, content nvarchar(max) COLLATE Chinese_ PRC_CI_AS NULL, infor nvarchar(max) COLLATE Chinese_ PRC_CI_AS NULL, p icture nvarchar(500) COLLATE Chinese_ PRC_CI_AS NULL, url nvarchar(500
16、) COLLATE Chinese_ PRC_CI_AS NULL, title nvarchar(500) COLLATE Chinese_ PRC_CI_AS NULL, html nvarchar(max) COLLATE Chinese_ PRC_CI_AS NULL, ty pe int NULL, adid int NULL,CONSTRAINT P K_ads P RIMARY KEY CLUSTERED(id ASC)WITH (P AD_INDEX= OFF, STATISTICS_NORECO MP UTE= OFF, IGNORE_DU P_KEY = OFF,ALLOW
17、_ROW_LOCKS= ON, ALLOW_ PAGE_LOCKS= ON) ON P RIMARY)ON P RIMARY上述代碼創(chuàng)建了一個(gè) ads表用于存儲(chǔ)廣告數(shù)據(jù), 其中的type字段和adid字段都是其他表的外鍵,這三個(gè)表一起完成整個(gè)廣告模塊的數(shù)據(jù)描述,type表創(chuàng)建的SQL語句如下所示。USE adGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO創(chuàng)建type表CREATE TABLE dbo.ty pe(id int IDENTITY(1,1) NOT NULL, classname nvarchar(50) COLLATE Chines
18、e_ PRC_CI_AS NULL, CONSTRAINT PK_type P RIMARY KEY CLUSTERED (id ASC)WITH (P AD_INDEX= OFF, STATISTICS_NORECO MP UTE= OFF, IGNORE_DU P_KEY = OFF,ALLOW_ROW_LOCKS= ON, ALLOW_ PAGE_LOCKS= ON) ON P RIMARY)ON P RIMARYtype 而 adclass adclass表進(jìn)行篩選type表用于描述廣告的類型,而adclass表用于描述廣告呈現(xiàn)的類型,這兩個(gè)表是有區(qū)別的。主要描述的是廣告的類型,包括圖
19、片廣告、文字廣告等,是系統(tǒng)類型,通常情況下是不會(huì)更改的。用于描述的是廣告呈現(xiàn)時(shí)所需要的類型,例如頭部廣告和底部廣告,這些廣告通過 和整合。adclass表創(chuàng)建的SQL語句如下所示。USE adGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ON創(chuàng)建adclass表GOCREATE TABLE dbo.adclass(id int IDENTITY(1,1) NOT NULL,classname nchar(10) COLLATE Chinese_ PRC_CI_AS NULL,CONSTRAINT P K_adclass P RIMARY KEY CLUS
20、TERED(id ASC)WITH (P AD_INDEX= OFF, STATISTICS_NORECO MP UTE= OFF, IGNORE_DU P_KEY = OFF,ALLOW_ROW_LOCKS= ON, ALLOW_ PAGE_LOCKS= ON) ON P RIMARY)ON P RIMARY上述代碼創(chuàng)建了一個(gè)adclass表,使用該表能夠?qū)V告進(jìn)行分類并呈現(xiàn)到相應(yīng)的頁面中,可以極大程度的避免同種類型的廣告的呈現(xiàn)。數(shù)據(jù)庫的設(shè)計(jì)是非常重要的,也是在軟件開發(fā)過程中一個(gè)非常重要 的環(huán)節(jié)。在廣告模塊中,必須先規(guī)定好,以及規(guī)劃好廣告模塊的數(shù)據(jù)庫設(shè)計(jì),否則數(shù)據(jù)庫的更改會(huì)帶來 很多的不便,
21、例如如果將adclass表和type表整合在ads表中,如果要修改一個(gè)字段的值,例如修改圖片類型的廣告,有可能需要更改一個(gè)或多個(gè)數(shù)據(jù),這樣就非常的不方便,也會(huì)導(dǎo)致數(shù)據(jù)的混亂,所以數(shù)據(jù)庫設(shè)計(jì)在任何模塊甚至是系統(tǒng)的開發(fā)過程中都是非常重要的一個(gè)環(huán)節(jié)。24.4界面設(shè)計(jì)對(duì)于廣告模塊的界面設(shè)計(jì),并不像前面兩個(gè)模塊一樣對(duì)界面的要求很高,也同樣沒有對(duì)用戶體驗(yàn)進(jìn) 行要求。但是廣告模塊的界面設(shè)計(jì)也并不是很簡(jiǎn)單,由于廣告驕傲模塊的呈現(xiàn)需要使用自定義控件進(jìn)行 HTML代碼的呈現(xiàn),其界面設(shè)計(jì)反而要求開發(fā)人員有較熟練的 HTML編碼能力。24.4.1發(fā)布廣告界面發(fā)布廣告界面作為管理員進(jìn)行廣告發(fā)布的頁面,這個(gè)頁面無需特別復(fù)
22、雜的呈現(xiàn),因?yàn)楣芾韱T最終期 望的是能夠快速的進(jìn)行廣告的發(fā)布,而不是花哨的界面,不過雖然這樣,還是需要進(jìn)行一定的用戶體驗(yàn) 的開發(fā),發(fā)布廣告界面代碼見光盤中源代碼第24章24-124-1Postad.aspx所示。其中的代碼編寫了廣告信息的基本控件,管理員能夠填寫相應(yīng)的廣告信息用于廣告的識(shí)別。在廣告 發(fā)布中,還需要填寫廣告發(fā)布代碼,以及圖片連接用于高級(jí)的廣告信息的呈現(xiàn),示例代碼見光盤中源代 碼第 24 章24-124-1Postad.aspx 所示。在該頁面中,使用了若干控件,這些控件都分別為廣告中的數(shù)據(jù)輸入進(jìn)行準(zhǔn)備,這些控件包括 TextBox文本框控件、日歷控件和下拉菜單控件。下拉菜單作為數(shù)據(jù)
23、綁定控件用于數(shù)據(jù)綁定,提供給管 理人員選擇相應(yīng)的廣告分類。24.4.2發(fā)布廣告頁數(shù)據(jù)源配置24-5所示。在發(fā)布廣告頁面中使用了數(shù)據(jù)源控件進(jìn)行數(shù)據(jù)源的呈現(xiàn)。在頁面中,需要對(duì)數(shù)據(jù)源進(jìn)行配置、篩選 和生成才能夠在發(fā)布頁面中進(jìn)行數(shù)據(jù)選擇。單擊【配置數(shù)據(jù)源】按鈕,選擇【新建連接】選項(xiàng),在新建 連接窗口中進(jìn)行數(shù)據(jù)源配置,如圖拖放一個(gè)數(shù)據(jù)源控件到頁面,用于配置adclass數(shù)據(jù)連接和數(shù)據(jù)綁定,創(chuàng)建數(shù)據(jù)連接后,選擇【將數(shù)據(jù)連接保存到 Web.config】選項(xiàng),在項(xiàng)目里就可以使用該連接進(jìn)行數(shù)據(jù)連接和綁定,如圖24-6所示。莆石嗥絹餌去畫前1?:面,或單擊” M西”冏E-1狀京 和堪口- bfTH佃ffi 取
24、iTV-r 點(diǎn)和匸 1* 呵* ?晦 3廠K用Few弓訊is V聞I血口Im 儷I(xiàn)ZlT|l*lAMzSHt fiJI 丄Qki訐Eh皿ri電-J.-.圖24-6創(chuàng)建連接圖24-5創(chuàng)建新數(shù)據(jù)連接創(chuàng)建連接后,就可以自動(dòng)生成SELECT語句填充數(shù)據(jù)綁定控件,方便開發(fā),如圖24-7所示。在完成SELECT語句的配置,就可以在相應(yīng)的控件中使用數(shù)據(jù)源呈現(xiàn)的數(shù)據(jù), 就可以使用數(shù)據(jù)源控件進(jìn)行數(shù)據(jù)顯示,如圖24-8所示。例如在廣告類型的下拉菜單中TlUjfft -I#廠 P*一lilL.aJF r i!; 'I'3njfll-z dn押寸:.nIHIM-IT hr' iiilirtBv
25、n' KrlBWT VUfU3ri -1 加 -J run IT 7.JI I門STa圖24-7 配置select語句圖24-8選擇數(shù)據(jù)源呈現(xiàn)數(shù)據(jù)在選擇了數(shù)據(jù)源之后,就可以為另一個(gè)下拉菜單進(jìn)行數(shù)據(jù)源配置,配置過程與上面的代碼相同。置完成后,頁面增加了數(shù)據(jù)源控件的代碼和數(shù)據(jù)綁定控件代碼,示例代碼見光盤中源代碼第24章24-124-1Postad.aspx 所示。24.4.3修改廣告界面但是修改廣告界面在加載時(shí)必須接受一個(gè)傳遞的參數(shù)修改廣告界面同發(fā)布廣告界面相同,相應(yīng)的廣告信息,加載完成后就要填充到修改廣告頁面的控件中。這也就是說,當(dāng)頁面加載時(shí),加載之id來查詢后的修改廣告頁面應(yīng)該先獲取廣
26、告信息提供給管理人員修改,修改廣告界面代碼見光盤中源代碼第24章24-124-1modi.aspx 。修改廣告界面基本同添加廣告界面相同,因?yàn)樾薷膹V告界面只需要進(jìn)行廣告的讀取和修改即可,而廣告中所需修改的字段同廣告添加字段基本相同,所以在廣告修改中只需要進(jìn)行字段的顯示和更新就能夠?qū)崿F(xiàn)廣告修改頁面的制作。24.4.4 管理廣告界面管理廣告界面可以使用現(xiàn)有的ASP.NET數(shù)據(jù)源控件和 ASP.NET數(shù)據(jù)綁定控件實(shí)現(xiàn),ASP.NET數(shù)據(jù)源控件和數(shù)據(jù)綁定控件能夠快速的提供數(shù)據(jù)的更新、刪除等功能。由于這里使用的是自定義更新頁面,就不能夠使用數(shù)據(jù)源控件本身提供的數(shù)據(jù)更新功能,對(duì)于管理廣告界面,只需要進(jìn)行數(shù)
27、據(jù)刪除操作的支持即可,數(shù)據(jù)源示例代碼見光盤中源代碼第24章24-124-1Manage.aspx。上述代碼配置了數(shù)據(jù)源控件的高級(jí)模式以支持?jǐn)?shù)據(jù)綁定控件中的更新、刪除等操作,這里只需要使用刪除操作就能夠?qū)崿F(xiàn)廣告的管理,更新操作無需使用自帶的更新而使用自定義頁面。單擊【數(shù)據(jù)綁定】控件,在菜單中單擊【功能模塊】按鈕,選擇【添加新列】選項(xiàng),在【選擇字段類型】選項(xiàng)中選擇【HyperLinkFiled】選項(xiàng)并填寫 HyperLinkFiled類型字段中提供的相應(yīng)的數(shù)據(jù)列和數(shù)據(jù)顯示策略,如圖 24-9所示。23-10所示,其中就包括在數(shù)據(jù)綁定控件中能夠使用【更新】連接進(jìn)行頁面跳轉(zhuǎn)功能的實(shí)現(xiàn),如圖JJN了系統(tǒng)
28、自帶的刪除操作和開發(fā)人員自定義的更新操作。Jn'kJS色卑?:R超: 1血何li alf leLi 為敵斗Of囲搭文*穴播圭gS).JjUHL=一-廣jTT).lie5'.A圖24-9添加字段7:r r - Pit-J-hp-TT-:T-r1-1;- <r mr ihcJ 丁041荷 r- 1,nil'1,;,- i"If卜!5 1 -S' u三1 町,二:' Ia宀-汀二:'血"二1工二:*-JkiK,斗 t-匚廠門1訂汗;通二1帚_二"2'-一 r,尹UPr.亡:刃:m 1 M <-工:h :
29、酒 V=汀r-=?2LieHeLt«a忙用n C _ £1' ,ILL_L目La:If -3土二二 tr11言:二二:CD0ZDjr iftiT ?,二i X孟tiLc t 二1二討即尸廠二-|】J-';_ 2_J -«.r-ij';'筑口:r; - -;i-1 7-金.宙n亠-民 T-ljd JJW2LL1lJr_1 L. -LdIK.Hi.111叮戸毗* - _'LJ - -1-l!i-'iIVJ 1 U Ili-Lil-r,1-|',:;旦魚口 u»*-©.*日=1 :gp <
30、.riii I諭GI解M辰二aT"盤嚴(yán)電 H'L "円5' tThSr&TL圖24-10數(shù)據(jù)綁定控件Grid View其中數(shù)據(jù)綁定控件選擇了自動(dòng)套用格式讓管理界面看上去更加的友好,管理人員能夠在該界面查看相應(yīng)的廣告信息并且刪除相應(yīng)的信息,如果管理人員要修改相應(yīng)的數(shù)據(jù),可以單擊【修改】按鈕在自定 義頁面中進(jìn)行廣告的修改。2445 分類管理界面分類管理界面比較的簡(jiǎn)單,因?yàn)榉诸惞芾肀碇械淖侄畏浅5纳伲苑诸惞芾斫缑婢湍軌蚴褂矛F(xiàn)有 的控件,如Grid View控件進(jìn)行數(shù)據(jù)插入、刪除和更新,在分類管理界面中,可以直接使用控件進(jìn)行操 作,這樣就能夠在多個(gè)頁面進(jìn)
31、行復(fù)雜的管理,示例代碼見光盤中源代碼第24章24-124-1ClassMa nage.as px。Listview上述代碼使用了 ListView控件并自動(dòng)套用格式,使管理員在操作的時(shí)候更加方便和簡(jiǎn)單, 控件能夠直接進(jìn)行數(shù)據(jù)的插入、更新和刪除,更加簡(jiǎn)便的進(jìn)行了數(shù)據(jù)管理,如圖24-11所示。百*$砧以吐R鼻巾B 抽門 三: 丄'* "*戟弓瀘 1 h汩5 M蘆 巾冊(cè).冶H 游掛卄心6n lj : ilZ- l iF-: jib;常石 I lllj I* d;'a be 鉗I陽血I* id: esawprijrpE; mbt淚斗I Jto I d: 5咽應(yīng)I刑訃 elai
32、snaEfi: I搐 k| .lif 煤 I第一丈上一帀I卞一頁I 昵一厲III * 補(bǔ)計(jì)n 董力 I 區(qū)渾 I 1 Sn O"*'fnnH.v»l > pliT與24-11分類管理頁面效果分類管理頁面是廣告模塊中一個(gè)比較容易實(shí)現(xiàn)的模塊,但在功能上卻是非常重要的模塊,因?yàn)樵趶V 告的分類管理是非常重要的,在自定義控件的開發(fā)過程中,可以通過廣告的分類管理進(jìn)行廣告的篩選, 以及整合,通過廣告的分類可以在網(wǎng)站的不同頁面進(jìn)行不同的廣告的呈現(xiàn),以及不同廣告的篩選,避免 了廣告的重復(fù)。24.5代碼實(shí)現(xiàn)雖然控件為開發(fā)提供了良好的支持,但是控件畢竟樣式死板、界面布局有限,而且代
33、碼實(shí)現(xiàn)也有限,所以很多情況下都需要使用自定義頁面進(jìn)行應(yīng)用程序的開發(fā),使用控件雖然能夠方便和快速的進(jìn)行功能開發(fā),但是卻無法避免死板的界面布局和有限的功能。24.5.1廣告添加功能廣告添加功能可以使用ADO.NET進(jìn)行廣告添加,ADO.NET可以執(zhí)行INSERT語句進(jìn)行數(shù)據(jù)庫中的數(shù)據(jù)插入,在廣告添加頁面,管理員在填寫完相應(yīng)的項(xiàng)目時(shí),可以單擊按鈕控件進(jìn)行數(shù)據(jù)插入。在 postad.aspx頁面中,制作完成頁面并雙擊【控件】按鈕, Visual Studio 2008能夠自動(dòng)生成相應(yīng)的事件, 開發(fā)人員可以在該事件中使用ADO.NET進(jìn)行數(shù)據(jù)操作代碼的編寫,示例代碼如下所示。P rotected voi
34、d Button1_Click(object sender, EventArgs e)trySqlConnection con = new SqlConnection("Data Source=(local);lnitial Catalog=ad;lntegratedSecurity=True");/ 創(chuàng)建連接con.O pen();/ 打開連接string strsql = "insert into ads (time,endtime,name,content,infor, pi cture,url,title,html,t yp e,adid)values (
35、'" + Convert.ToDateTime(Calendar1.SelectedDate).ToString() + "','"+ Convert.ToDateTime(Calendar2.SelectedDate).ToString() + "','" + TextBoxl.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','"
36、 + TextBox6.Text + "','" + TextBox7.Text + "','" + TextBox2.Text + "','" + TextBox5.Text + "','" + Drop DownListl.Text + "','" + Drop DownList2.Text + "')"SqlCommand cmd = new SqlCommand(strsql, c
37、on);/ 倉 U建執(zhí)行cmd.ExecuteNonQueryO;/執(zhí)行 SQLRes po nse.Redirect("manage.as px");/ 頁面跳轉(zhuǎn) catch(Exce ption ee)/拋出異常Res po nse.Write(ee.ToString();廣告添加過程非常的容易,正如上述代碼所示,直接對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行插入操作就能夠插入一條新廣告,對(duì)于自定義控件,可以從數(shù)據(jù)庫中獲取廣告和篩選廣告進(jìn)行呈現(xiàn)。24.5.2 廣告修改功能當(dāng)頁面被加載時(shí),廣告修改頁面是廣告模塊中的自定義頁面,這個(gè)頁面使用的是控件進(jìn)行組合開發(fā),首先需要通過傳遞的參數(shù)進(jìn)行查詢,查
38、詢后填充到控件中,示例代碼如下所示。P rotected void Page_Load(object sender, EventArgs e)tryif (!ls Po stBack)if (Request.QueryString"id"="")Res po nse.Redirect("manage.as px");SqlConnection con =new SqlConnection("Data Source=(local);lnitial Catalog=ad;lntegrated Security=True"
39、;); con.O pen();打開連接string strsql = "select * from ads where id='" + Request.QueryString"id".ToString() SqlDataAda pter da = new SqlDataAda pter(strsql, con);,DataSet ds = new DataSet();,int count = da.Fill(ds, "table");,if (count > 0),TextBoxl.Text = ds.Tables&q
40、uot;table".RowsO"name".ToString();,TextBox2.Text = ds.Tables"table".RowsOtitle".ToString();,TextBox3.Text = ds.Tables"table".RowsOcontent".ToString();,TextBox4.Text = ds.Tables"table".RowsO"infor".ToString();,TextBox5.Text = ds.Tables&
41、quot;table".RowsO"html".ToString();,TextBox6.Text = ds.Tables"table".RowsO" picture".ToString();,TextBox7.Text = ds.Tables"table".RowsO"url".ToString();,Calendarl.SelectedDate = ds.Tables"table".RowsO"time".ToString(); Calend
42、ar2.SelectedDate = ds.Tables"table".RowsO"endtime".ToString();判斷加載獲取參數(shù)頁面跳轉(zhuǎn)+創(chuàng)建適配器 創(chuàng)建數(shù)據(jù)集 /填充數(shù)據(jù)集 判斷數(shù)據(jù)IHH.初始化控件初始化控件初始化控件初始化控件初始化控件初始化控件初始化控件/初始化控件Drop DownList1.Text = ds.Tables"table".RowsOt yp e".ToString();/Drop DownList2.Text = ds.Tables"table".RowsOadid
43、".ToString();/Label1.Text = ds.Tables"table".Rows0"id".ToString();初始化控件初始化控件 初始化控件 elseRes po nse.Redirect("manage.as px");頁面跳轉(zhuǎn) catch Respo nse.Redirect("manage.as px");當(dāng)頁面被加載時(shí)就會(huì)執(zhí)行上述代碼,上述代碼僅僅是在數(shù)據(jù)庫中查詢相應(yīng)的數(shù)據(jù),并呈現(xiàn)在相應(yīng)的 控件中,這樣管理員在加載頁面時(shí)就能夠修改現(xiàn)有的數(shù)據(jù)內(nèi)容進(jìn)行更新。當(dāng)管理員更新完畢后,
44、單擊相 應(yīng)的事件按鈕就能夠執(zhí)行數(shù)據(jù)更新操作,數(shù)據(jù)更新操作示例代碼如下所示。P rotected void Button1_Click(object sender, EventArgs e)SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=ad;Integrated Security=True");錯(cuò)誤頁跳轉(zhuǎn)創(chuàng)建連接字串/打開連接con .Open();string strsql = "up date ads set time='" + Calend
45、ar1.SelectedDate + "',endtime='" +Calendar2.SelectedDate + "',name='" + TextBox1.Text + "',title='" + TextBox2.Text +"',content='" + TextBox3.Text + "',infor=”' + TextBox4.Text + "',html=”' + TextBox5.T
46、ext +"',picture* + TextBox6.Text + "',url='" + TextBox7.Text + "',t yp e='" + Drop DownList1.Text + "',adid='" + DropDownList2.Text + "' where id='" + Label1.Text + ;/更新 SQLSqlCommand cmd = new SqlCommand(strsql, con);創(chuàng)
47、建執(zhí)行cmd.ExecuteNonQueryO;執(zhí)行 SQL 語句Res po nse.Redirect("manage.as px");頁面跳轉(zhuǎn)上述代碼通過 ADO.NET進(jìn)行數(shù)據(jù)更新,從上面代碼可以看出使用ADO.NET進(jìn)行數(shù)據(jù)更新非常的簡(jiǎn)單,只需要打開數(shù)據(jù)庫連接,在連接過程中使用SqlCommand對(duì)象執(zhí)行ExecuteNonQuery方法進(jìn)行數(shù)據(jù)的插入和刪除操作就能夠?qū)?shù)據(jù)庫進(jìn)行操作。24.5.3自定義控件的實(shí)現(xiàn)在增加廣告、刪除廣告和廣告管理等頁面制作完畢后,這也就意味著后臺(tái)基本制作完畢,管理員可 以在后臺(tái)進(jìn)行廣告的增加和刪除以及管理,也可以對(duì)廣告的類別進(jìn)行管理。后
48、臺(tái)制作完畢后就需要在前 臺(tái)呈現(xiàn)廣告,前臺(tái)廣告的呈現(xiàn)可以通過制作自定義控件進(jìn)行呈現(xiàn)。右擊現(xiàn)有解決方案管理,在下拉菜單中選擇【添加新項(xiàng)】選項(xiàng),在【添加新項(xiàng)目】窗口中選擇【自 定義控件】項(xiàng),這里創(chuàng)建一個(gè)名為Ad的自定義控件,如圖 24-12所示。DffiCAEblErtLTC ncF NdHifl 內(nèi) 硝道Vimd. CF 肛 dJ.»i 仙 窖竝ifi吿 HLIir* 關(guān)脂庫 Up DT tl Tig旺池口_蟲-' n *sr HIT曲h雅肴応用E席 嶺臨T HT tr(j并咼3虧tr 目婕EH厘才I用壬創(chuàng)e在忖窗皤中弔的刮刪宣目-肓T Ft存r心3引 罪護(hù)-圖24-12新增自定
49、義控件自定義控件用于篩選廣告和呈現(xiàn)廣告,篩選過程可以使用自定義控件的屬性和方法完成,在編寫完 成自定義控件之后,就能夠通過向頁面拖動(dòng)自定義控件和屬性配置進(jìn)行廣告呈現(xiàn),自定義控件屬性編寫 示例代碼如下所示。Bindable(true) DefaultValue("") Localizable(true) p ublic string type get; set; Bindable(true) DefaultValue("") Localizable(true) p ublic string adid get; set; Bindable(true) Def
50、aultValue("Data Source=(local);lnitial Catalog=ad;lntegrated Security=True") Localizable(true) p ublic string SQLConnectionString get; set; Bindable(true) DefaultValue("") Localizable(true) p ublic bool text get; set; Bindable(true) DefaultValue("") Localizable(true) p
51、ublic string CssStyle get; set; Bindable(true) DefaultValue("") Localizable(true) p ublic string TitleCssStyle get; set; 設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置廣告類型設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置連接字串設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置是否為文字設(shè)置允許綁定默認(rèn)值為空允許本地化 設(shè)置CSS樣式設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置標(biāo)題CSS設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置內(nèi)容CSS設(shè)置允許綁定默認(rèn)值為空允許本地化設(shè)置顯示個(gè)數(shù)Bindable(t
52、rue)DefaultValue("")Localizable(true)p ublic string ContentCssStyle get; set; Bindable(true)DefaultValue("")Localizable(true)p ublic int ShowNumber get; set; 上述代碼為自定義控件設(shè)置了屬性,管理員可以使用此控件并設(shè)置屬性進(jìn)行控件的編寫和調(diào)用相應(yīng)的廣告代碼,自定義控件HTML頁面實(shí)現(xiàn)代碼如下所示。P rotected override void RenderContents(HtmlTextWrite
53、r out put)try590string constring = "Data Source=(local);lnitial Catalog=ad;lntegrated Security=True"if (SQLConnectionString != null)獲取連接字串constring = SQLConnectionString;SqlConnection con = new SqlConnection(constring);con .Open();string strsql = "select * from ads order by id desc&qu
54、ot;if (type != null&&adid!=null)strsql = "select * from ads where typ e='" + type + "' and adid='" + adid + "' order by id desc"else if (type != null)strsql = "select * from ads where typ e='" + type + "' order by id desc&q
55、uot;else if (adid != null)strsql = "select * from ads where adid='" + adid + "' order by id desc"SqlDataAda pter da = new SqlDataAda pter(strsql,con);DataSet ds = new DataSet();int count=da.Fill(ds, "table");if (count > 0)if (ShowNumber < count)count = Sho
56、wNumber;StringBuilder build = new StringBuilder();/開發(fā)人員可以在這里使用屬性中的樣式build.A PP end("<div style=" padding:10 px 10px 10px 10p x;border:1 px dashed #ccc;">");for (int i = 0; i < count; i+)遍歷輸出創(chuàng)建連接對(duì)象打開連接默認(rèn)SQL語句 篩選SQL語句篩選SQL語句篩選SQL語句創(chuàng)建適配器 創(chuàng)建數(shù)據(jù)集 填充數(shù)據(jù)集 判斷項(xiàng)數(shù)判斷生成條目獲取用戶設(shè)置創(chuàng)建String對(duì)象build.A PP end(&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024教師招聘教師資格考試面試試講稿小學(xué)數(shù)學(xué)原理32-圓錐的體積
- 2024年雞場(chǎng)租賃及維護(hù)協(xié)議
- 2023年職稱計(jì)算機(jī)考試模擬題難題解析
- 2024年老年人糖尿病護(hù)理培訓(xùn)課程
- 餐飲投資合伙人協(xié)議范本2024年
- 打造專業(yè)人才:2024年3dmax教案精粹
- 高新區(qū)智慧終端研發(fā)中心項(xiàng)目可行性研究報(bào)告寫作模板-備案審批
- 關(guān)于足球比賽的范文
- 2023屆高考化學(xué)人教版一輪復(fù)習(xí)學(xué)案-11.3晶體結(jié)構(gòu)與性質(zhì)
- 2024年專屬藝術(shù)品委托寄賣協(xié)議
- 江蘇省南京市建鄴區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期中考試物理試題(無答案)
- 中小學(xué)師德師風(fēng)建設(shè)各項(xiàng)制度匯編
- 2024年保安員證考試題庫及答案(共260題)
- 公務(wù)員2024年國考申論真題(地市級(jí))及參考答案
- XXXX酒店管理公司成立方案
- 民用無人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題及答案
- 疼痛科整體規(guī)劃和發(fā)展方案
- 2024年中國南水北調(diào)集團(tuán)水網(wǎng)水務(wù)投資限公司及下屬單位社會(huì)招聘高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- (新版)食品生產(chǎn)企業(yè)食品安全員理論考試題庫500題(含答案)
- 七年級(jí)語文上冊(cè)第13課《紀(jì)念白求恩》公開課一等獎(jiǎng)創(chuàng)新教案
- 統(tǒng)編版語文六年級(jí)上冊(cè)第八單元大單元整體教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論