電子商務(wù)網(wǎng)站開發(fā)_第1頁
電子商務(wù)網(wǎng)站開發(fā)_第2頁
電子商務(wù)網(wǎng)站開發(fā)_第3頁
電子商務(wù)網(wǎng)站開發(fā)_第4頁
電子商務(wù)網(wǎng)站開發(fā)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

電子商務(wù)網(wǎng)站開發(fā)摘要:電子商務(wù)網(wǎng)站是現(xiàn)在和未來的一種購(gòu)物方式,他將會(huì)給人們帶來越來越多的方便。本文將首先從結(jié)構(gòu)上對(duì)網(wǎng)站的設(shè)計(jì)有一個(gè)總體上的思想,包括網(wǎng)站的前端的會(huì)員管理模塊和后端的數(shù)據(jù)維護(hù)模塊,這是任何一個(gè)網(wǎng)站所必備。但我還是把一些內(nèi)容放在安全技術(shù)的論述上,當(dāng)安全越來越成為當(dāng)今網(wǎng)站的一個(gè)突出主題時(shí),我們不得不在安全上下大功夫,讓我們的網(wǎng)站成為您的一方凈土。一個(gè)電子商務(wù)網(wǎng)站,從好處上說它可以帶給我們更加快捷的生活方式和提供更加方便的人性化服務(wù),但從壞處上說它將我們的隱私更加暴露無遺,我們需要把我們的真實(shí)姓名、身份證號(hào)甚至連我們的銀行帳戶提供給商家。我們不得不懷疑網(wǎng)絡(luò)上是否安全,別人是否會(huì)利用我的帳戶在購(gòu)買商品,我們上網(wǎng)時(shí)有沒有被別人跟蹤。在這一切沒有解決之前我們的顧客是不愿意在網(wǎng)上購(gòu)物時(shí),我們應(yīng)該怎么辦?本文將從電子網(wǎng)站的整體設(shè)計(jì)的同時(shí)來考慮怎樣來減少我們網(wǎng)站的安全漏洞。關(guān)鍵字:AspAccess電子商務(wù)Web開發(fā)設(shè)計(jì)本文介紹了用ASP和Access數(shù)據(jù)庫(kù)建立一個(gè)電子商務(wù)網(wǎng)站的開發(fā)與設(shè)計(jì)過程。該設(shè)計(jì)遵循了軟件工程中軟件生命周期法;按照軟件分析、軟件設(shè)計(jì)、軟件編碼、和軟件維護(hù)分為定義系統(tǒng)目標(biāo)、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)功能設(shè)計(jì)、軟件編碼。并將面對(duì)用戶的WEB界面采用B/S結(jié)構(gòu)和對(duì)于后臺(tái)數(shù)據(jù)挖掘的管理邏輯采用C/S。在本文數(shù)據(jù)庫(kù)的設(shè)計(jì)過程中,采用了結(jié)構(gòu)化設(shè)計(jì)方法,采用了數(shù)據(jù)流程圖(DFD)、程序流程圖等工具清晰的展示數(shù)據(jù)存儲(chǔ)及調(diào)用過程。保證了系統(tǒng)的健壯性,可維護(hù)性,可擴(kuò)充性。建立后的網(wǎng)站是一個(gè)動(dòng)態(tài)、交互式、具有網(wǎng)上購(gòu)物、商品提供、系統(tǒng)管理等功能的BTOC電子商務(wù)網(wǎng)站。一制作的關(guān)鍵問題與難點(diǎn)一個(gè)網(wǎng)絡(luò)電子網(wǎng)站可以實(shí)現(xiàn)的功能非常強(qiáng)大,例如:全世界鼎鼎有名的亞馬遜書店,除了基本的網(wǎng)絡(luò)電子商店的功能之外,還可分析客戶購(gòu)買行為,列出相關(guān)商品,會(huì)員的投票評(píng)分,還有跟后臺(tái)服務(wù)系統(tǒng)及后臺(tái)金流物流系統(tǒng)的集成。當(dāng)然也可以做的功能很簡(jiǎn)單,例如:現(xiàn)在很多的公司只做到商品目錄介紹,連采購(gòu)車的系統(tǒng)都沒有,下訂單還要通過電子郵件來完成。當(dāng)然我覺得做的電子商務(wù)網(wǎng)站分為兩部分:一是前端的購(gòu)物系統(tǒng),二是后端的管理系統(tǒng)。在整個(gè)系統(tǒng)中的核心技術(shù)為購(gòu)物和結(jié)帳系統(tǒng),但最為難的技術(shù)為安全技術(shù),在整個(gè)系統(tǒng)中我們需要進(jìn)行SSL加密,數(shù)據(jù)庫(kù)加密,和網(wǎng)頁間數(shù)據(jù)傳遞加密以及用戶和密碼加密。二具體實(shí)現(xiàn)ASPNET的前身是ASP(ActiveServerPages),以其簡(jiǎn)單的語法一嵌入HTML的編輯方法,在很短的時(shí)間內(nèi)獲得巨大的成功,成了NT平臺(tái)上WEB技術(shù)的霸主,這種地位至今無人動(dòng)搖。但隨著PHP,JSP等技術(shù)的出現(xiàn),ASP的王者地位受到了嚴(yán)峻的挑戰(zhàn)。WEB技術(shù)的新貴——JSP,它是有微軟公司的競(jìng)爭(zhēng)對(duì)手Sun公司出品,在執(zhí)行效率、安全性等特性上已經(jīng)完全超過了ASP,它更有著ASP無法比擬的跨平臺(tái)性,使得JSP在Window、Unix、Linux主機(jī)上均使用。它的誕生,使得越來越多的人選擇了能夠跨平臺(tái)使用的JSP。ASP的用戶日益減少,ASP面臨著前所未有的危機(jī)。在這種情況下,微軟提出了".NET”構(gòu)想,2000年6月22日,微軟公司首次向外界公布了其宏偉的“Window.Net”計(jì)劃,同時(shí)發(fā)布了下一代網(wǎng)絡(luò)服務(wù)器框架(NextGenerationWebServicesFramework簡(jiǎn)稱NGWS)。在NGWS中人們首次看到了ASP+的身影。2000年11月,微軟公司推出了VisualStudio.Net7.0beat1,同時(shí)擴(kuò)展了NGWS的功能平將其更名為.NetFramework。此時(shí),ASP+也更名為現(xiàn)在的ASPNet。到此,ASPNet正式推出了,那它到底有哪些先進(jìn)的特性,現(xiàn)在就將讓在下一一介紹。ASPNet作為Web設(shè)計(jì)技術(shù)的一種,它的主要功能還是產(chǎn)生動(dòng)態(tài)網(wǎng)頁,以滿足不同用戶的需要。在網(wǎng)上見得最多的是HTML頁面(文件的后綴名為.htm或.html),它只是將別人編輯好的WEB頁面展現(xiàn)給大家,這種頁面如果不動(dòng)手去修改,是不會(huì)發(fā)生任何變化的。如果想在網(wǎng)頁中訪問數(shù)據(jù)庫(kù),這種純HTML頁面就無能為力了。這時(shí)就得依賴各種WEB技術(shù)。而ASPNet作為一種新的WEB技術(shù),它給了設(shè)計(jì)者一種全新的WEB設(shè)計(jì)概念。它將軟件設(shè)計(jì)和Web設(shè)計(jì)融為一體。由于它和VB.Net,C#這些程序設(shè)計(jì)語言使用同一個(gè).NetFramework對(duì)象開發(fā)庫(kù),可以想象ASPNet所能實(shí)現(xiàn)的功能是多么強(qiáng)大。ASPNet是一種建立在CLR(CommonLanguageRuntime通用語言運(yùn)行機(jī))基礎(chǔ)之上的程序開發(fā)框架,它主要用于在服務(wù)器上開發(fā)功能強(qiáng)大的WEB應(yīng)用,ASPNET提供了下面一些超越以前的重要特性:優(yōu)良的性能:ASPNET在服務(wù)器上運(yùn)行的是經(jīng)過編譯的CLR代碼。與以前的技術(shù)相比,ASPNET能夠充分利用Binding(綁定),及時(shí)編譯,本地優(yōu)化,緩沖服務(wù)來提高程序的性能。大量工具箱的支持:在VisualS的開發(fā)環(huán)境中,ASPNET因其豐富的工具箱和設(shè)計(jì)器而受到很高的贊揚(yáng)。比如所見即所得的編輯方式,支持托放的服務(wù)器控件,以及動(dòng)態(tài)的配置管理,這些都是被大受贊揚(yáng)的。而這一些還只是其提供的強(qiáng)大特性的冰山一角,還有很多值得在實(shí)踐中發(fā)掘。強(qiáng)大的功能以及良好的機(jī)動(dòng)性:因?yàn)锳SPNET是建立在CLR基礎(chǔ)上的,所以整個(gè)平臺(tái)的功能和適用性更加適合網(wǎng)絡(luò)應(yīng)用程序的開發(fā)。CLR中基本的類庫(kù)、消息、數(shù)據(jù)訪問解決方案幾乎來源于WEB思想。ASPNET可以使用很多種編程語言來編寫,可以選擇最合適的那一種,甚至可以選用多種語言來編寫。次外,CLR的協(xié)同工作能力保證以前開發(fā)的基于COM的程序,在移植到ASPNET后,依然能夠正常使用。這就意味著,以前的ASP程序依然可以正常運(yùn)行。易用性:使用ASPNET來完成一些普通的任務(wù)是很簡(jiǎn)單的事情。比如,ASPNET頁面構(gòu)架允許建立用戶接口,這樣就能把代碼與程序結(jié)構(gòu)分離。寫程序只需要考慮程序的結(jié)構(gòu),而不需要考慮怎樣去書寫代碼,因?yàn)樗鼈兌际孪纫呀?jīng)寫好了。嶄新的配置管理方式:ASPNET使用的是一種基于文本格式,等級(jí)式的配制系統(tǒng),這種方式使得應(yīng)用服務(wù)器環(huán)境和WEB應(yīng)用的設(shè)置更加簡(jiǎn)單,因?yàn)榕渲菩畔⑹且晕谋靖袷絻?chǔ)存的,新設(shè)置將不需要本地管理工具的幫助,也可使之生效。一個(gè)ASPNET應(yīng)用程序只需要將必須的程序拷貝到服務(wù)器上就可以使用了。甚至是替換其本身,而不是需要重啟服務(wù)器。一個(gè)明顯的例子就是服務(wù)器上的控件的替換和修改再也不需要重啟服務(wù)器了。這個(gè)本是寫DLL控件最煩人的事情,現(xiàn)在這種煩惱已不存在??梢浦残院土己玫倪m用:ASPNET對(duì)多線程有著自己獨(dú)特的一套操作方法,當(dāng)一條線程出現(xiàn)異常情況后,一個(gè)新的進(jìn)程會(huì)在它的地方重新建立,繼續(xù)負(fù)擔(dān)原進(jìn)程所處理的任務(wù)。這就使得應(yīng)用程序能夠不中斷地處理客戶請(qǐng)求。超強(qiáng)的擴(kuò)展性:ASPNET嶄新的結(jié)構(gòu)體系允許開發(fā)者開發(fā)自己的插件。實(shí)際上,ASPNET下任何一貫組件都能夠被用戶自己開發(fā)的組件擴(kuò)展或替換。使用一種新的WEB技術(shù),除了考慮效率外,最重要的是關(guān)心它到底提供了多少新功能使編寫程序更加方便。下面我做一些簡(jiǎn)單的說明:ADO.NETASP之所以成功,在很大程度上是得益于微軟提供的ADO(ActiveXDataObject)數(shù)據(jù)對(duì)象控件。ADO提供了很大的便利去存取數(shù)據(jù)庫(kù)、XML數(shù)據(jù)。但是ADO也有局限性,比如一個(gè)RecordSet只能存放一個(gè)數(shù)據(jù)表的內(nèi)容,如果需要同時(shí)操縱多個(gè)數(shù)據(jù)表,那就不得不打開多個(gè)RecordSet,這顯得有些麻煩,其他WEB技術(shù)同樣存在這樣的煩惱。而這個(gè)問題在ASPNET中可以獲得很好的解決。在ADO.NET中,微軟提供了一個(gè)新的操縱對(duì)象DataSet,這是一個(gè)功能非常強(qiáng)大的對(duì)象,在一個(gè)DataSet可以同時(shí)存放多個(gè)數(shù)據(jù)表。DataGrid微軟其實(shí)提供三個(gè)數(shù)據(jù)顯示控件:DataGrid、DataList、Repeater。但這三個(gè)控件數(shù)DataGrid功能最強(qiáng),其次為DataList,最弱為Repeater,而DataGrid也有一個(gè)缺點(diǎn)它的字段長(zhǎng)度很難控制,而另外兩個(gè)可以用<Table></Table:標(biāo)記符加以控制。DataGrid的定義為:<Asp:DtaGridrunat="server"id="MyDataGrid”/>在其控件內(nèi)部集成了很多方法,比如:分頁技術(shù),數(shù)據(jù)修改、刪除等都以非常完善。豐富的WEB控件ASPNET區(qū)別與其他的WEB技術(shù)的最明顯特征是提供了豐富的WEB控件。在VB.NET中,可以使用很多控件來完成程序。很多年來人們都向往著在WEB技術(shù)上也能使用這些控件,現(xiàn)在這些夢(mèng)想已經(jīng)成真。現(xiàn)在也能在ASPNET中使用這些與VB.NET控件擁有相同功能的各種WEB控件。從這里也可以看出微軟公司試圖將WEB設(shè)計(jì)與軟件設(shè)計(jì)融為一體整體的設(shè)想。WEB控件的出現(xiàn)給編寫程序提供了極大的便利。當(dāng)熟悉WEB控件以后,程序只是對(duì)各種控件的屬性進(jìn)行修改,可以將精力集中在程序的邏輯結(jié)構(gòu)上。支持事件處理(EventHandle)在ASPNET中,會(huì)有兩個(gè)最基本的事件Page_Load與Page_UnLoad,它們分別在頁面被調(diào)用與頁面釋放時(shí)發(fā)生(當(dāng)然這些都發(fā)生在服務(wù)器上)??梢栽赑age_Load事件中初始化一些數(shù)據(jù),比如部分控件的屬性、對(duì)數(shù)據(jù)庫(kù)的訪問等,在Page_UnLoad事件中關(guān)閉在程序中打開的數(shù)據(jù)庫(kù)或者釋放所占的內(nèi)存空間。程序結(jié)構(gòu)與代碼的分離ASPNET程序可以通過Code-Behind、用戶控件、自定義控件以及組件這四種方法將程序結(jié)構(gòu)與執(zhí)行代碼相分離,將面向?qū)ο蟮乃季S擴(kuò)展到了一定的高度。當(dāng)程序的邏輯結(jié)構(gòu)一目了然,便可以將更多的時(shí)間放在代碼的編寫之上。當(dāng)然本文介紹到這里已經(jīng)將一些基本的網(wǎng)頁技術(shù)都作了一番介紹,最后向大家介紹網(wǎng)頁設(shè)計(jì)者的必修課 SQL語言。SQL的全稱是StructuredQueryLanguage,譯為“結(jié)構(gòu)化查詢語言”。它利用簡(jiǎn)單的語句來完成對(duì)數(shù)據(jù)庫(kù)的存取操作。由于SQL的用法簡(jiǎn)單,所以它已經(jīng)成為數(shù)據(jù)系統(tǒng)中使用最廣泛的一種語言了。SQL雖然是一種語言,但同平常看到的C、C++、C#語言是不同的。它不能獨(dú)立存在,必須依托于數(shù)據(jù)庫(kù)系統(tǒng),當(dāng)然也就不可能像C、C++、C#一樣建立應(yīng)用程序。使用SQL語言,并不能直接操作數(shù)據(jù)庫(kù),它只是告訴數(shù)據(jù)庫(kù)需要進(jìn)行哪些操作,然后再由數(shù)據(jù)庫(kù)系統(tǒng)去完成這些操作。SQL語言定義可以分為三大類:一、數(shù)據(jù)定義語言(DDL:DataDefinitionLanguage);二、數(shù)據(jù)操作語言(DML:DataManipulationLanguage);三、數(shù)據(jù)控制語言(DCL:DataControlLanguage)。好了本文不可能將網(wǎng)頁設(shè)計(jì)技術(shù)作詳細(xì)的介紹,其實(shí)現(xiàn)在HTML技術(shù)已經(jīng)正趨向XHTML和XML技術(shù)轉(zhuǎn)化,XHTML和XML將比HTML有著更嚴(yán)格的語法限制(區(qū)分大小寫),但XML語言不在受標(biāo)記語言的范疇,并可以對(duì)數(shù)據(jù)進(jìn)行描述。所以有著更好的發(fā)展前景。ASPNET是一門綜合的藝術(shù),它需要我們將網(wǎng)頁設(shè)計(jì)中各種技術(shù)加以融合,而最后形成精美的網(wǎng)頁。二案例解析ASPNET提供一種強(qiáng)大的方法從數(shù)據(jù)包或XML文件中取得數(shù)據(jù)字段信息。然而,有時(shí)候你必須要將一部分的數(shù)據(jù)字段從數(shù)據(jù)源中綁定出來去完成某些任務(wù)。或許你需要數(shù)據(jù)源中的一些特定的數(shù)據(jù)格式或二次數(shù)據(jù),因此你需要一些出色的能力去控制數(shù)據(jù)字段的顯示。.在以下的例子中,你將經(jīng)典處理onItemDataBound事件,直到你自如的控制onItemDataBound事件。這將帶給你許多方便,但不幸的是源代碼有點(diǎn)長(zhǎng)。期望這個(gè)例子會(huì)有所幫助!首先,讓我來解釋一下這個(gè)來自現(xiàn)實(shí)的應(yīng)用程序:一個(gè)我的網(wǎng)站ASPS上的有一般表達(dá)書庫(kù)中ASPNET的練習(xí)題,你可以單擊這里來查看它的演示。你將在一會(huì)兒后看到它的演示效果。至于我的有一般表達(dá)式書庫(kù)中,我曾經(jīng)用的幾個(gè)字段剛好超出我的默認(rèn)字段,所以我的DataGrid提供一個(gè)叫做“超出封裝”。首先,我用一個(gè)用戶名字段使它轉(zhuǎn)向去連接用戶的電子郵件。接著,我想限制每一個(gè)結(jié)果描述的字?jǐn)?shù)顯示在每一張搜索的網(wǎng)頁上,為了防止頁面由于顯示的字?jǐn)?shù)過多而使頁面過長(zhǎng)。(因?yàn)檫@個(gè)描述的信息在我的數(shù)據(jù)包中是以文本的形式存在,因此那會(huì)導(dǎo)致數(shù)據(jù)有幾兆的大?。┳詈?,我將做一個(gè)編輯連接,這將允許書庫(kù)的管理者來編輯它,但我不想讓它顯示除非是當(dāng)前的用戶是書庫(kù)的所有者。讓我們看看這是如何實(shí)現(xiàn)的,首先我們看一看我的(相當(dāng)冗長(zhǎng))的DataGrid報(bào)告,重要的部分在紅色中被列出。default.aspx的摘錄<asp:DataGridid="gRegexp"runat="server”AutoGenerateColumns="False”BorderColor="Black"BorderWidth="1”Style="margin-left:20px;”PageSize="5”AllowPaging="True"AllowCustomPaging="True”O(jiān)nPageIndexChanged="gRegexp_PageIndexChanged”onItemDataBound="gRegexp_ItemDataBound”GridLines="Horizontal”PagerStyle-Mode="NumericPages”PagerStyle-HorizontalAlign="Center”PagerStyle-Position="TopAndBottom”PagerStyle-Width="100%”HeaderStyle-BackColor="#CC0000”HeaderStyle-Font-Bold="True”HeaderStyle-Font-Name="Verdana"HeaderStyle-Font-Size="9pt”HeaderStyle-ForeColor="White”ItemStyle-Font-Name="Arial"ItemStyle-Font-Size="8pt”AlternatingItemStyle-BackColor="#DDDDDD">在這個(gè)事件中,onItemDataBound的事件將對(duì)任何數(shù)據(jù)字段進(jìn)行控制。你可以把這個(gè)事件用在DataGrid、DataList和Repeater等控件中。在上面的例子中,我把這個(gè)事件映射到我的dgRegexp_ItemDataBound事件中去處理。我們現(xiàn)在來看一看:default.aspx中的摘錄protectedvoiddgRegexp_ItemDataBound(ObjectSender,DataGridItemEventArgse){//ForItemsandAlternatingItems,//convertuseridtoemaillink//truncatedescription//hideeditlinkifnotownerif(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){Trace.Write("ItemDataBound”,e.Item.DataItem.GetType().ToString());intuser_id=Int32.Parse(((System.Data.Common.DbDataRecord)e.Item.DataItem)["user_id"].ToString());Trace.Write("ItemDataBound”,"user_id:"+user_id.ToString());ASPAlliance.DAL.UserDetailsobjUser=ASPAlliance.DAL.User.getUserDetails(user_id);((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text=objUser.first_name+""+objUser.last_name+"("+objUser.email+")";((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl="mailto:"+objUser.email;Trace.Write("ItemDataBound","myuser.Text:"+((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text);Stringdesc=((System.Data.Common.DbDataRecord)e.Item.DataItem)["description"].ToString();if(desc.Length>100){desc=desc.Substring(0,99);desc+="...";}((System.Web.UI.WebControls.Label)e.Item.FindControl("description")).Text=desc;ASPAlliance.DAL.Securitysec=newASPAlliance.DAL.Security(this.Request);if((sec.user_id==0)||(sec.user_id!=user_id)||(!sec.isAuthenticated)){((System.Web.UI.HtmlControls.HtmlTableCell)e.Item.FindControl("editTD")).Visible=false;}}}}好,這就是我所舉的一個(gè)例子,一點(diǎn)點(diǎn)少的“僅僅為了示范”的三行解釋代碼無法讓我們明白?,F(xiàn)在,我們將徹底的解釋并展現(xiàn)在你眼前一些強(qiáng)大和難看的的東西,而這些東西實(shí)際上處在一個(gè)具有研究成果的位置上。但是不要害怕,你將在片刻之后完全明白它的含義。如果你還沒有準(zhǔn)備好(甚至你只懂VB),讓我們打破常規(guī)。例子開始的6行只是聲明我們的方法和拋出了一些注釋。正如我所說的,我想在這兒做三件事情:使用戶名轉(zhuǎn)向電子郵件連接;截去描述字?jǐn)?shù)的長(zhǎng)度;當(dāng)前用戶不是管理員時(shí)隱藏編輯連接。這里唯一你真正需要去看的是確保你的第二個(gè)參數(shù)的類型轉(zhuǎn)變成你所需要控制的。這是相當(dāng)明顯的,但是如果你不能理解它,你總是能在你所用的分類瀏覽器中考慮其特別的控制定義。對(duì)于VB.NET的使用者來說,正好需要轉(zhuǎn)變對(duì)雙斜杠到單斜杠的理解,除去大括號(hào)而且轉(zhuǎn)變將類型參數(shù)跟隨變量名的后面并在類型名之前加“AS”。接下來,我們需要確定我們所處理的字段類型是正確的。既然這個(gè)事件已經(jīng)上升到控制每一個(gè)字段,包括有項(xiàng)目、隔行項(xiàng)目、分隔線項(xiàng)目、開頭項(xiàng)目和結(jié)尾項(xiàng)目等。(完整的列表),我們需要敘述那一類我們所關(guān)心的項(xiàng)目。在這個(gè)例子中,我們只需要處理主要的控制片段,因此我們檢查確定在這個(gè)問題中的項(xiàng)目不是所有的項(xiàng)目的就是隔行項(xiàng)目的。如果上面聲明它將被處理,我們將從輸入框中取得當(dāng)前項(xiàng)目和。并且與我們所關(guān)心的項(xiàng)目的類型進(jìn)行比較,對(duì)于使用VB的家伙,“||”意味著“或”的邏輯。注意:當(dāng)我第一次寫這個(gè)應(yīng)用程序時(shí)我忽略了隔行項(xiàng)目的使用,因此用戶顯示的電子郵件顯示成了其它項(xiàng)目。但是用戶的帳號(hào)卻被另一個(gè)所顯示。好,我現(xiàn)在在程序中得到一些追蹤幫我解決錯(cuò)誤。這些追蹤列出了當(dāng)前項(xiàng)目的數(shù)據(jù)類型,好讓我校正它實(shí)際上不是項(xiàng)目就是隔行項(xiàng)目的。在你執(zhí)行這個(gè)程序時(shí)你可以不管這些。接著,我將取得用戶的帳號(hào)。這是復(fù)雜的代碼片段。讓我在這里重復(fù)并從頭到尾一端一端的加以解釋。Intuser_id=Int32.Parse(((System.Data.Common.DbDataRecord)e.Item.Dataltem)["user_id"].ToString());讓我們開始并將核心插入語以紅色顯示。這是C#類型控件的方法,并且必須要將當(dāng)前數(shù)據(jù)字段類型轉(zhuǎn)化到DbDataRecord類型。橙色的插入語完成這項(xiàng)操作。對(duì)于所有的目的和意圖,橙色的插入語內(nèi)容被考慮是一個(gè)DbDataRecord。移動(dòng)到綠色,這將允許我們涉及到這條記錄中“user_id-元素,并使用C#的數(shù)組或集合語法(在VB將使用小括號(hào)帶代替中括號(hào)),并且將內(nèi)容轉(zhuǎn)化到字符串,因?yàn)檫@是Int32.Parse所期望的。最后轉(zhuǎn)移到黑色,Int32.Parse將字符型轉(zhuǎn)化到整形。轉(zhuǎn)變的結(jié)果被放在我的user_id的整形變量中。在下一行我有更多的診斷代碼輸出的user_id到追蹤日志。好的,我們現(xiàn)在有了user_id,接下來的一大塊代碼使用了我寫的一些自定義操作去處理我的用戶。當(dāng)任何人建立了IBuySpy應(yīng)用程序后操作就被做成模型。在這個(gè)例子中,我的UserDetails類通過getUserDetails方法包含了用戶名和用戶的郵件地址。下一行是另一個(gè)復(fù)雜的塊,雖然:((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text=objUser.first_name+""+objUser.last_name+"("+objUser.email+")";再一次,從中央的大多數(shù)的parens開始,我們有另一個(gè)配合其型而決定的角色操作被完成。這個(gè)紅色的代碼被轉(zhuǎn)化成橙色的代碼是一個(gè)超級(jí)連接。這個(gè)橙色的代碼被用來查找操作當(dāng)前的項(xiàng)目中誰的ID是“我的用戶”在我的DataGrid的列的模板中,我做了一個(gè)<asp:HyperLinkid="myuser"/>的標(biāo)記符讓這段代碼加以引用。在這塊代碼的其他部分放置了超級(jí)連接的用戶名和郵件地址的文本。這個(gè)超級(jí)連接在我的DataGrid中看起來象<asp:hyperlinkID="myuser"Runat="server"><%#DataBinder.Eval(Container.DataItem,"user_id")%></asp:hyperlink>這樣。在現(xiàn)在之前配合其型而決定的角色正變得越來越落伍,下一行如同前一行所做的事情一樣,但是在這個(gè)例子中我們將設(shè)置超級(jí)連接的NavigateUrl屬性到U“mailto:”和我們用戶的電子郵件地址。此外它們還被一些比較診斷的追蹤跟隨。((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl="mailto:"+objUser.email;這就是為email所寫的。任務(wù)1已經(jīng)完成了。現(xiàn)在如果代碼太長(zhǎng)我們想截去其描述部分。我們做這些使用了相同的技術(shù)。首先,我們將在它轉(zhuǎn)換成一個(gè)DbDataRecord類型之后截取來自當(dāng)前字段的“描述”。然后我們將其轉(zhuǎn)化成字符串并把它賦給變量等(

溫馨提示

  • 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. 人人文庫(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)論