2019/4/10 9:22:22
新聞網站或者其它類似網站中,點擊新聞标題,然後打開(kāi)一個(gè)新頁面,把新聞标題對應的(de)詳細内容顯示出來,是一個(gè)常用(yòng)技術(shù)。現在談一下如(rú)何在ASP.NET上(shàng)完成。
1、首先在Default.aspx頁面上(shàng)建立一個(gè)SqlDataSource控件(jiàn),比如(rú)下面一個(gè)簡單的(de)查詢:
Select NewsId, Title, SubmitDate from NewsTable
2、然後建立一個(gè)GridView控件(jiàn),點擊SmartTag,選擇數據源爲上(shàng)邊剛剛建立的(de)這個(gè)數據源
3、同樣在這個(gè)GridView控件(jiàn)的(de)SmartTag菜單裏,點擊“編輯列”,進入“字段”對話(huà)框,這裏主要講标題的(de)設置,其它相(xiàng)對簡單。把“選定的(de)字段”窗格中自動綁定的(de)那個(gè)Title字段删除,然後在“可(kě)用(yòng)字段”窗格内選定Hyperlinkfield,點擊“添加”按鈕,下邊“選定的(de)字段”窗格會(huì)出現一個(gè)新添加的(de)Hyperlinkfield,這就是我們需要主要修改的(de)字段。
4、在“選定的(de)字段”窗格中選定Hyperlinkfield, 注意看右邊相(xiàng)應的(de)"Hyperlinkfield屬性"窗格,如(rú)果是按分(fēn)類排序屬性的(de)話(huà),第二個(gè)項目就是數據,裏邊含有(yǒu)4個(gè)屬性,這4個(gè)屬性了解,任務也(yě)就完成,現在講一下這4個(gè)屬性:
DataNavigateUrlFields:這個(gè)是指定鏈接中使用(yòng)數據表的(de)哪個(gè)列值進行(xíng)鏈接,現在自然是根據News表中的(de)主鍵來找到(dào)相(xiàng)關新聞,所以這個(gè)值應該是主鍵字段(注意對應你(nǐ)新聞表中的(de)主鍵名稱,本例中是NewsId,看第1條的(de)查詢語句),将來顯示相(xiàng)應新聞詳細内容,就以這個(gè)Id值來查詢唯一的(de)一條記錄。這個(gè)裏邊在本例中設爲:NewsId
DataNavigateUrlFormatString:這是用(yòng)來格式化上(shàng)邊已經設定的(de)值。上(shàng)邊隻是一個(gè)查詢相(xiàng)關NewsId的(de)記錄,具體查到(dào)的(de)這一條NewsId的(de)記錄,應該顯示在哪個(gè)頁面,由這裏來決定,将光(guāng)标點入這個(gè)屬性,下邊會(huì)有(yǒu)屬性解釋說,比如(rú)你(nǐ)可(kě)以寫成:page.aspx?id={0} 這裏{0}是占位符,是爲剛才講的(de)第一個(gè)數據屬性占位置的(de),比如(rú)如(rú)果将來用(yòng)戶點擊NewsId = 18 的(de)記錄,page.aspx?NewsId={0}實際就變成了這樣的(de)内容: page.aspx?NewsId=18, 專業(yè)術(shù)語叫做QueryString,即查詢字符串,用(yòng)戶在Default.aspx頁面點擊NewsId=18的(de)新聞标題,就會(huì)跳轉到(dào)page.aspx頁面上(shàng)。這裏邊在本例中設爲:page.aspx?NewsId={0}
DataTextField:“綁定到(dào)超鏈接文(wén)本屬性的(de)字段”,這是你(nǐ)将光(guāng)标點入這個(gè)屬性時,下邊的(de)屬性說明(míng)。具體意思就是:這個(gè)鏈接,在外表上(shàng),你(nǐ)要顯示什(shén)麽内容給用(yòng)戶看,給用(yòng)戶看主鍵的(de)數字,對用(yòng)戶毫無意義。這個(gè)地(dì)方,應該填入“Title”字段,就是新聞的(de)标題字段,用(yòng)戶看到(dào)的(de)是标題,這樣點擊這個(gè)标題,就可(kě)以看到(dào)新聞具體内容了。這裏邊在本例中設爲:Title
DataTextFormatString:這個(gè)最簡單,點擊光(guāng)标進入,下邊有(yǒu)屬性說明(míng),試一下,很容易理(lǐ)解意思,就是你(nǐ)可(kě)以除了顯示标題外,可(kě)以加入一些你(nǐ)自己想顯示的(de)統一内容,比如(rú)設定爲:點擊進入{0},将來在标題前都(dōu)會(huì)出現“點擊進入”4個(gè)字。這個(gè)屬性本例中不用(yòng),所以留爲空白,不進行(xíng)任何設定。
5、下邊進行(xíng)另外一個(gè)關鍵步驟,設定詳細内容頁面的(de)查詢。同樣,在page.aspx頁面建立一個(gè)SqlDataSource控件(jiàn),還是查詢NewsTable數據表,這裏要選用(yòng)标題、詳細内容、上(shàng)傳日期等字段,但(dàn)最重要的(de)是,選定好要顯示的(de)字段後,不要急于點擊“下一步”按鈕,而是要點擊“Where...”按鈕,出現下邊的(de)窗口,在窗口中,在“列”(就是要進行(xíng)條件(jiàn)查詢字段)下拉框中,選定“NewsId”,“運算符”爲等号,“源”下拉框中選擇“QueryString”,因爲第4步中DataNavigateUrlFormatString屬性送來的(de)page.aspx?NewsId={0}中,NewsId={0}就叫QueryString,利用(yòng)這個(gè)傳遞來的(de)參數,來決定本page.aspx頁面顯示哪一條記錄的(de)詳細。配置好的(de)界面如(rú)下圖所示,注意記住點擊“添加”按鈕,才會(huì)把你(nǐ)的(de)設置寫入select語句中。
6、在page.aspx頁面中建立一個(gè)DatailsView控件(jiàn),把第5步做好的(de)SqlDataSource作用(yòng)它的(de)數據源。至于具體DetailsView如(rú)何布局,你(nǐ)自己設計(jì)吧(ba)。
Done!工(gōng)作完成,這是點擊新聞标題進入新聞内容頁面最常用(yòng)的(de)辦法,而其中QueryString傳遞參數,也(yě)是頁面間傳遞參數常用(yòng)的(de)辦法。要注意的(de)是:這種方法傳遞參數可(kě)以不至一個(gè),也(yě)可(kě)以傳遞多個(gè),如(rú)果傳遞多個(gè),在DataNavigateUrlFields屬性中可(kě)以點擊後邊有(yǒu)“...”那個(gè)小(xiǎo)按鈕,在新開(kāi)窗口中輸入多個(gè)值;同時在DataNavigateUrlFormatString屬性中用(yòng){0},{1}分(fēn)别表示第一個(gè)占位符,第二個(gè)占位符,對應前邊要傳遞的(de)多個(gè)參數。
深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04
咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967