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