真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在ASP.NET2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

武夷山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,武夷山網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為武夷山上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的武夷山做網(wǎng)站的公司定做!

導(dǎo)言

通常,用戶友好的個(gè)性化站點(diǎn)都有著一致的,站點(diǎn)統(tǒng)一的頁(yè)面布局和導(dǎo)航體系。Asp.net 2.0引入的兩個(gè)新特性給我們?cè)诮y(tǒng)一站點(diǎn)的頁(yè)面布局和站點(diǎn)導(dǎo)航上提供了簡(jiǎn)單而有效的工具,它們是母板頁(yè)和站點(diǎn)導(dǎo)航。母板頁(yè)允許開(kāi)發(fā)者創(chuàng)建統(tǒng)一的站點(diǎn)模板和指定的可編輯區(qū)域。這樣,aspx頁(yè)面只需要給模板頁(yè)中指定的可編輯區(qū)域提供填充內(nèi)容就可以了,所有在母板頁(yè)中定義的其他標(biāo)記將出現(xiàn)在所有使用了該母板頁(yè)的aspx頁(yè)面中。這種模式允許開(kāi)發(fā)者可以統(tǒng)一的管理和定義站點(diǎn)的頁(yè)面布局,因此可以容易的得到擁有統(tǒng)一的視覺(jué)和感覺(jué)的頁(yè)面并且還易于更新。

站點(diǎn)導(dǎo)航系統(tǒng)允許開(kāi)發(fā)者定義站點(diǎn)地圖并提供了API以便通過(guò)程序查詢站點(diǎn)地圖信息。新的導(dǎo)航控件包括Menu,TreeView和SiteMapPath,這樣可以很容易的在一個(gè)一般的導(dǎo)航用戶界面元素里呈現(xiàn)全部或者部分站點(diǎn)地圖。我們將使用默認(rèn)的站點(diǎn)導(dǎo)航提供者,這意味著我們的站點(diǎn)地圖將定義在一個(gè)xml格式的文件中。

為說(shuō)明這些觀念并且使我們的教程的示例站點(diǎn)可用性更佳,讓我們通過(guò)本次課程定義一個(gè)站點(diǎn)統(tǒng)一的頁(yè)面布局,實(shí)現(xiàn)一個(gè)站點(diǎn)地圖,并且添加導(dǎo)航UI。在這個(gè)課程結(jié)束時(shí)我們的課程示例站點(diǎn)就擁有一個(gè)優(yōu)美的設(shè)計(jì)效果了。

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖1:本課程的最終成果

步驟1:創(chuàng)建母板頁(yè)

第一步是為我們的站點(diǎn)創(chuàng)建母板頁(yè)。到目前為止我們的站點(diǎn)只有一個(gè)類型化的DataSet(Northwind.xsd,位于App_Code文件夾),業(yè)務(wù)邏輯層類庫(kù)(ProductsBLL.cs,CategoriesBLL.cs等等,這些都在App_Code文件夾里),數(shù)據(jù)庫(kù)(NORTHWIND.MDF,位于App_Data文件夾),配置文件(web.config),和一個(gè)CSS文件(Style.css)。
我整理這些頁(yè)面和文件以說(shuō)明前面兩次課程中介紹的數(shù)據(jù)訪問(wèn)層和業(yè)務(wù)邏輯層將會(huì)在以后課程的更多細(xì)節(jié)中重用這些示例。

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖2:我們項(xiàng)目中的文件

要?jiǎng)?chuàng)建一個(gè)母板頁(yè),用右鍵點(diǎn)擊解決方案管理器中的項(xiàng)目名稱并選擇添加新項(xiàng)。然后從模板列表窗口中選擇母板類型并且命名為Site.master

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖3:添加一個(gè)母板頁(yè)到站點(diǎn)中

在母板頁(yè)中定義站點(diǎn)統(tǒng)一的頁(yè)面布局。你可以用設(shè)計(jì)視圖定義你需要的布局或者控件,你還可以手動(dòng)的在代碼視圖中添加標(biāo)記。在我們的母板頁(yè)中使用了定義在外部文件Style.css中的層疊樣式表來(lái)定義位置和風(fēng)格。也許你不知道下面這些標(biāo)記怎樣顯示,樣式表規(guī)則定義了導(dǎo)航用的

標(biāo)簽中的內(nèi)容絕對(duì)定位在頁(yè)面的左邊并且寬度固定為200像素。

Site.master

<%@ Master Language="C#" AutoEventWireup="true"
 CodeFile="Site.master.cs" Inherits="Site" %>





 Working with Data Tutorials
 


 

 

  
  Working with Data Tutorials
  
   TODO: Breadcrumb will go here...
  
               
     TODO: Menu will go here...   
   

一個(gè)母板頁(yè)定義了固定的布局和可以被那些使用了母板頁(yè)的aspx頁(yè)面填充的可編輯區(qū)域
這個(gè)可編輯區(qū)域是通過(guò)ContentPlaceHolder控件顯示,位于

標(biāo)記中。我們的母板頁(yè)中只有一個(gè)ContentPlaceHolder(MainContent),但是母板頁(yè)中是可以包含多個(gè)ContentPlaceHolder控件的。

輸入上面的標(biāo)記,切換到設(shè)計(jì)視圖觀察母板頁(yè)的布局。所有的使用了這個(gè)母板頁(yè)的aspx頁(yè)面都會(huì)有這樣統(tǒng)一的布局,而MainContent區(qū)域是留給aspx頁(yè)面展現(xiàn)自己才華的地方。

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖4:在設(shè)計(jì)視圖中顯示的母板頁(yè)

步驟2:給站點(diǎn)添加一個(gè)主頁(yè)

定義母板頁(yè)后,我們準(zhǔn)備給站點(diǎn)添加一些aspx頁(yè)面。讓我們從添加我們的首頁(yè)Degault.aspx開(kāi)始吧。在解決方案管理器中右鍵點(diǎn)擊項(xiàng)目名稱并且選擇添加新建項(xiàng)目。從模板列表中選擇Web Form選項(xiàng)并且命名為Default.aspx。并且,勾上“選擇母板頁(yè)”的復(fù)選框。

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖5:添加一個(gè)新Web Form并且勾上“選擇母板頁(yè)”的復(fù)選框

點(diǎn)擊確定按鈕后,將會(huì)詢問(wèn)你新建的這個(gè)aspx頁(yè)面使用哪個(gè)母板頁(yè)。也許你有多個(gè)母板頁(yè)在你的項(xiàng)目中,但是我們只有一個(gè)。

在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航

圖6:選擇你要使用的母板頁(yè)

選擇母板頁(yè)后,新建的aspx會(huì)包含下面這些標(biāo)記:

Default.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
 CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>

在@Page指令中有一個(gè)指向母板頁(yè)的引用(MasterPageFile=”~/Site.master”),并且aspx頁(yè)面的標(biāo)記中包含了一個(gè)Content控件對(duì)應(yīng)母板頁(yè)中定義的ContentPlaceHolder控件,這個(gè)Content控件的ContentPlaceHolderID屬性映射到指定的ContentPlaceHolder控件。你可以在Content控件中放置你想顯示在相應(yīng)ContentPlaceHolder控件位置的標(biāo)記。

設(shè)置@Page指令的Title屬性為Home并且添加一些歡迎詞到Content控件中:


Default.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
 CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home" %>

 

Welcome to the Working with Data Tutorial Site

 

This site is being built as part of a set of tutorials that illustrate some of the new data access and databinding features in ASP.NET 2.0 and Visual Web Developer.

 

Over time, it will include a host of samples that demonstrate:

 
     
  • Building a DAL (data access layer),
  •  
  • Using strongly typed TableAdapters and DataTables
  •  
  • Master-Detail reports
  •  
  • Filtering
  •  
  • Paging,
  •  
  • Two-way databinding,
  •  
  • Editing,
  •  
  • Deleting,
  •  
  • Inserting,
  •  
  • Hierarchical data browsing,
  •  
  • Hierarchical drill-down,
  •  
  • Optimistic concurrency,
  •  
  • And more!
  •  

@Page指令中的Title屬性允許我們可以在aspx頁(yè)面定義標(biāo)題,即使母板頁(yè)中已經(jīng)定義了元素。我們還可以使用Page.Title的編程方式設(shè)置頁(yè)面的標(biāo)題。需要注意的是母板頁(yè)中引用的樣式表(如Style.css)會(huì)自動(dòng)校正以應(yīng)用到每個(gè)aspx頁(yè)面中,這是與aspx頁(yè)面的目錄和母板頁(yè)目錄之間的關(guān)系無(wú)關(guān)。</p><p>切換到設(shè)計(jì)視圖我們會(huì)看到我們的頁(yè)面將在瀏覽器中的顯示效果。注意:在設(shè)計(jì)視圖里,aspx頁(yè)面的內(nèi)容只有可編輯區(qū)域可以被修改,在母板頁(yè)定義的非ContentPlaceHolder部分標(biāo)記被顯示成灰色。</p><p><img src="/upload/otherpic7/32299.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖7:在設(shè)計(jì)視圖中顯示的可編輯區(qū)域及非可編輯區(qū)域</strong></p><br/><p>當(dāng)Default.aspx頁(yè)面被瀏覽器訪問(wèn)時(shí),asp.net引擎會(huì)合并母板頁(yè)的內(nèi)容和aspx頁(yè)的內(nèi)容,并且將合并的內(nèi)容呈現(xiàn)為最終的HTML發(fā)送到瀏覽器。當(dāng)母板頁(yè)的內(nèi)容被更新,所有使用了這個(gè)母板頁(yè)的aspx頁(yè)面會(huì)在下次被請(qǐng)求時(shí)重新和新的母板頁(yè)內(nèi)容合并。簡(jiǎn)單的說(shuō),母板頁(yè)模型允許定義一個(gè)統(tǒng)一的布局模板(母板頁(yè)),當(dāng)它改變時(shí)整個(gè)站點(diǎn)會(huì)反應(yīng)這種改變。<br/>添加更多的頁(yè)面到站點(diǎn)中<br/>讓我們花一點(diǎn)時(shí)間添加另外的頁(yè)面到站點(diǎn)中,以便支持最終的各種各樣的課程的示例。這里總共會(huì)有超過(guò)35個(gè)示例,所以我們先創(chuàng)建一部分。以后會(huì)有很多類別的示例,為了更好的管理這些示例我們給每個(gè)分類添加一個(gè)文件夾?,F(xiàn)在我們添加三個(gè)文件夾:<br/>· BasicReporting<br/>· Filtering<br/>· CustomFormatting<br/>最后,如圖8所示向解決方案管理器中添加新文件。每添加一個(gè)文件的時(shí)候記住要勾上“選擇母板頁(yè)”的復(fù)選框。</p><p><img src="/upload/otherpic7/32300.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖8:添加下列文件</strong></p><p><strong>第三步:添加站點(diǎn)地圖</strong></p><br/><p>管理一個(gè)由大量網(wǎng)頁(yè)組成的網(wǎng)站的其中一個(gè)挑戰(zhàn)是要為訪問(wèn)者瀏覽網(wǎng)站提供一個(gè)捷徑。作為開(kāi)始,站點(diǎn)的導(dǎo)航結(jié)構(gòu)必須被定義。下一步,這個(gè)結(jié)構(gòu)必須轉(zhuǎn)換成適于導(dǎo)航的用戶界面元素,比如菜單或者位置導(dǎo)航。當(dāng)有新頁(yè)面添加到站點(diǎn)和已有的頁(yè)面被移除的時(shí)候這個(gè)過(guò)程將要修改和校正。</p><p>在asp.net 2.0以前,開(kāi)發(fā)者需要自己創(chuàng)<a target="_blank">建站</a>點(diǎn)導(dǎo)航結(jié)構(gòu),維護(hù)它并且將它轉(zhuǎn)化為適于導(dǎo)航的用戶界面元素。在asp.net 2.0里,開(kāi)發(fā)者可以利用非常靈活的且內(nèi)置的站點(diǎn)導(dǎo)航系統(tǒng)。Asp.net 2.0站點(diǎn)導(dǎo)航系統(tǒng)允許開(kāi)發(fā)者定義一個(gè)站點(diǎn)地圖并且提供了可以訪問(wèn)這些信息的API。</p><p>默認(rèn)的Asp.net站點(diǎn)地圖提供者期望站點(diǎn)地圖信息存儲(chǔ)在xml格式的文件中。但是,建立在提供者模型上的站點(diǎn)導(dǎo)航系統(tǒng)是可以被擴(kuò)展的以支持多種方式儲(chǔ)存的站點(diǎn)地圖。Jeff Prosise的文章,The SQL Site Map Provider You've Been Waiting For展示了怎樣創(chuàng)建將站點(diǎn)地圖存儲(chǔ)在SQL Server數(shù)據(jù)庫(kù)里的提供者;另外一個(gè)選擇是基于文件系統(tǒng)的站點(diǎn)地圖提供者。<br/>在這個(gè)指南中,我們?nèi)匀皇褂肁SP.NET2.0里默認(rèn)的站點(diǎn)地圖提供者。要?jiǎng)?chuàng)建站點(diǎn)地圖,在解決方案管理器里右鍵點(diǎn)擊項(xiàng)目名稱,選擇添加新項(xiàng),然后選擇站點(diǎn)地圖類型。命名為Web.sitemap然后單擊添加按鈕。</p><p><img src="/upload/otherpic7/32301.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖9:向你的項(xiàng)目中添加站點(diǎn)地圖</strong></p><br/><p>站點(diǎn)地圖文件是一個(gè)xml文件。注意:Visual Studio可以為站點(diǎn)地圖結(jié)構(gòu)提供智能感知。站點(diǎn)地圖文件必須含有<siteMap>作為根節(jié)點(diǎn),它必須至少含有一個(gè)<siteMapNode>子節(jié)點(diǎn)。這個(gè)<siteMapNode>元素又可以包含任意數(shù)量的<siteMapNode>子元素。</p><br/><p>站點(diǎn)地圖模擬了文件系統(tǒng)。為每個(gè)文件夾添加一個(gè)<siteMapNode>元素,并且為每個(gè)aspx頁(yè)面添加一個(gè)<siteMapNode>子元素,如此:</p><p>Web.sitemap:</p><pre><?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >  <siteMapNode url="~/Default.aspx" title="Home" description="Home">  <siteMapNode title="Basic Reporting"  url="~/BasicReporting/Default.aspx"  description="Basic Reporting Samples">  <siteMapNode url="~/BasicReporting/SimpleDisplay.aspx"   title="Simple Display"   description="Displays the complete contents   of a database table." />  <siteMapNode url="~/BasicReporting/DeclarativeParams.aspx"   title="Declarative Parameters"   description="Displays a subset of the contents   of a database table using parameters." />  <siteMapNode url="~/BasicReporting/ProgrammaticParams.aspx"   title="Setting Parameter Values"   description="Shows how to set parameter values   programmatically." />  </siteMapNode>  <siteMapNode title="Filtering Reports"  url="~/Filtering/Default.aspx"  description="Samples of Reports that Support Filtering">  <siteMapNode url="~/Filtering/FilterByDropDownList.aspx"   title="Filter by Drop-Down List"   description="Filter results using a drop-down list." />  <siteMapNode url="~/Filtering/MasterDetailsDetails.aspx"   title="Master-Details-Details"   description="Filter results two levels down." />  <siteMapNode url="~/Filtering/DetailsBySelecting.aspx"   title="Details of Selected Row"   description="Show detail results for a selected item in a GridView." />  </siteMapNode>  <siteMapNode title="Customized Formatting"   url="~/CustomFormatting/Default.aspx"   description="Samples of Reports Whose Formats are Customized">  <siteMapNode url="~/CustomFormatting/CustomColors.aspx"   title="Format Colors"   description="Format the grid s colors based   on the underlying data." />  <siteMapNode   url="~/CustomFormatting/GridViewTemplateField.aspx"   title="Custom Content in a GridView"   description="Shows using the TemplateField to   customize the contents of a field in a GridView." />  <siteMapNode   url="~/CustomFormatting/DetailsViewTemplateField.aspx"   title="Custom Content in a DetailsView"   description="Shows using the TemplateField to customize   the contents of a field in a DetailsView." />  <siteMapNode url="~/CustomFormatting/FormView.aspx"   title="Custom Content in a FormView"   description="Illustrates using a FormView for a   highly customized view." />  <siteMapNode url="~/CustomFormatting/SummaryDataInFooter.aspx"   title="Summary Data in Footer"   description="Display summary data in the grids footer." />  </siteMapNode>  </siteMapNode> </siteMap></pre><p>站點(diǎn)地圖定義了這個(gè)站點(diǎn)的導(dǎo)航結(jié)構(gòu),它是層次結(jié)構(gòu)的以便描述站點(diǎn)中各種各樣的區(qū)域。在Web.sitemap中的每個(gè)<siteMapNode>元素描述了一個(gè)站點(diǎn)結(jié)構(gòu)中的一個(gè)區(qū)域。</p><p><img src="/upload/otherpic7/32302.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖10:站點(diǎn)地圖描述了一個(gè)層次的導(dǎo)航結(jié)構(gòu)</strong></p><br/><p>Asp.net通過(guò)DotNET 框架中的SiteMap類顯示站點(diǎn)地圖的結(jié)構(gòu)。這個(gè)類有一個(gè)CurrentNode屬性,它返回當(dāng)前用戶正在訪問(wèn)的節(jié)點(diǎn)的信息;RootNode屬性返回站點(diǎn)地圖的根節(jié)點(diǎn)信息(在我們的站點(diǎn)地圖中是Home)。CurrentNode呵RootNode屬性都返回SiteMapNode實(shí)例,SiteMapNode包含ParentNode,ChildNodes,NextSibling,PreviousSibling等屬性,這些屬性允許站點(diǎn)地圖的層次可以被遍歷。</p><p><strong>步驟4:利用站點(diǎn)地圖顯示菜單</strong></p><p>在asp.net 2.0中我們可以像asp.net 1.x一樣,有多種編程方式可以訪問(wèn)數(shù)據(jù),還可以通過(guò)新的數(shù)據(jù)源控件訪問(wèn)。<br/>這里有多個(gè)內(nèi)置的數(shù)據(jù)源控件,比如用來(lái)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)的SqlDataSource控件,用來(lái)訪問(wèn)類所提供的數(shù)據(jù)的ObjectDataSoruce控件等等。你還可以創(chuàng)建你自己的自定義數(shù)據(jù)源控件。</p><p>數(shù)據(jù)源控件作為你的aspx頁(yè)面和底層數(shù)據(jù)的代理。為了顯示數(shù)據(jù)源控件查詢到的數(shù)據(jù),我們要添加其他Web控件到頁(yè)面上,并且將它和數(shù)據(jù)源控件綁定。要綁定一個(gè)Web控件到一個(gè)數(shù)據(jù)源控件,只需要簡(jiǎn)單的設(shè)置這個(gè)Web控件的DataSourceID屬性值為數(shù)據(jù)源控件的ID屬性值。</p><p>為了獲取站點(diǎn)地圖中的數(shù)據(jù),asp.net提供了SiteMapDataSource控件,它允許我們綁定一個(gè)Web控件來(lái)顯示我們的站點(diǎn)地圖。TreeView和Menu這兩個(gè)Web控件常常用來(lái)提供導(dǎo)航用戶界面。要綁定站點(diǎn)地圖中的數(shù)據(jù)到這兩個(gè)控件,添加一個(gè)SiteMapDataSource控件到頁(yè)面中,設(shè)置TreeView或者M(jìn)enu控件的DataSourceID屬性值為SiteMapDataSource控件的ID屬性值就可以了。舉個(gè)例子,我們可以用下面這些標(biāo)記將Menu控件到母板頁(yè)中:</p><pre><div id="navigation">  <asp:Menu ID="Menu1" runat="server"  DataSourceID="SiteMapDataSource1">  </asp:Menu>  <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> </div></pre><p>為了生成優(yōu)化的HTML,我們可以綁定SiteMapDataSource控件到Repeater控件,如下:</p><pre><div id="navigation">  <ul>  <li><asp:HyperLink runat="server" ID="lnkHome"   NavigateUrl="~/Default.aspx">Home</asp:HyperLink></li>  <asp:Repeater runat="server" ID="menu"   DataSourceID="SiteMapDataSource1">   <ItemTemplate>   <li>    <asp:HyperLink runat="server"    NavigateUrl='<%# Eval("Url") %>'>    <%# Eval("Title") %></asp:HyperLink>   </li>   </ItemTemplate>  </asp:Repeater>  </ul>  <asp:SiteMapDataSource ID="SiteMapDataSource1"  runat="server" ShowStartingNode="false" /> </div></pre><p>SiteMapDataSource控件每次返回站點(diǎn)地圖層次中的一級(jí),從站點(diǎn)地圖中的根節(jié)點(diǎn)開(kāi)始(在我們的站點(diǎn)地圖中是Home),然后是下一個(gè)級(jí)(Basic Reporting,Filtering Reports和Customized Formatting)等等。<br/>當(dāng)將SiteMapDataSource綁定到Repeater時(shí),它遍歷第一級(jí)并且用ItemTemplate顯示第一級(jí)的每個(gè)SiteMapNode實(shí)例。我們可以使用Eval(屬性名稱)訪問(wèn)SiteMapNode的細(xì)節(jié),這樣我們就可以得到SiteMapNode的Url和Title屬性給HyperLink控件。<br/>下面顯示的是上面使用Repeater控件例子生成的HTML標(biāo)記:</p><pre><li>  <a href="/Code/BasicReporting/Default.aspx">Basic Reporting</a> </li> <li>  <a href="/Code/Filtering/Default.aspx">Filtering Reports</a> </li> <li>  <a href="/Code/CustomFormatting/Default.aspx">  Customized Formatting</a> </li></pre><p>從上面可以看出,站點(diǎn)地圖的第二級(jí)節(jié)點(diǎn)(Basic Reporting,Filtering Reports和Customized Formatting)被顯示而不是第一個(gè)。</p><br/><p>這是因?yàn)镾iteMapDataSource控件的ShowStartingNode屬性被設(shè)為false,導(dǎo)致SiteMapDataSource跳過(guò)了站點(diǎn)地圖的根節(jié)點(diǎn)取而代之的是從站點(diǎn)地圖的層次的第二級(jí)開(kāi)始返回信息。<br/>為了顯示Basic Reporting,Filtering Reports和Customized Formatting的子SiteMapNode,我們可以向先前的Repeater的ItemTemplate里添加另外一個(gè)Repeater。第二個(gè)Repeater將綁定到SiteMapNode實(shí)例的子結(jié)點(diǎn)屬性,如下:</p><pre><asp:Repeater runat="server" ID="menu" DataSourceID="SiteMapDataSource1">  <ItemTemplate>  <li>   <asp:HyperLink runat="server"   NavigateUrl='<%# Eval("Url") %>'>   <%# Eval("Title") %></asp:HyperLink>   <asp:Repeater runat="server"   DataSource='<%# ((SiteMapNode) Container.DataItem).ChildNodes %>'>   <HeaderTemplate>    <ul>   </HeaderTemplate>   <ItemTemplate>    <li>    <asp:HyperLink runat="server"     NavigateUrl='<%# Eval("Url") %>'>     <%# Eval("Title") %></asp:HyperLink>    </li>   </ItemTemplate>   <FooterTemplate>    </ul>   </FooterTemplate>   </asp:Repeater>  </li>  </ItemTemplate> </asp:Repeater></pre><p>這兩個(gè)Repeater生成的HTML標(biāo)記(為了節(jié)省篇幅一些標(biāo)記被移除了):</p><pre><li>  <a href="/Code/BasicReporting/Default.aspx">Basic Reporting</a>  <ul>  <li>   <a href="/Code/BasicReporting/SimpleDisplay.aspx">   Simple Display</a>  </li>  <li>   <a href="/Code/BasicReporting/DeclarativeParams.aspx">   Declarative Parameters</a>  </li>  <li>   <a href="/Code/BasicReporting/ProgrammaticParams.aspx">   Setting Parameter Values</a>  </li>  </ul> </li> <li>  <a href="/Code/Filtering/Default.aspx">Filtering Reports</a>  ... </li> <li>  <a href="/Code/CustomFormatting/Default.aspx">  Customized Formatting</a>  ... </li></pre><p>使用的CSS風(fēng)格選擇自Rachel Andrew的書:The CSS Anthology: 101 Essential Tips, Tricks, & Hacks,<ul>和<li>元素的風(fēng)格將顯示如下:</p><p><img src="/upload/otherpic7/32303.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖11:用兩個(gè)Repeater和一些CSS顯示的菜單</strong></p><br/><p>這個(gè)菜單在母板頁(yè)中定義的,綁定了在Web.sitemap中定義的站點(diǎn)地圖,這意味著所有站點(diǎn)地圖的修改會(huì)立即反應(yīng)到所有使用了Site.master母板頁(yè)的頁(yè)面。</p><p>關(guān)掉視圖狀態(tài)</p><p>所有的asp.net控件可以隨意的保持它們的狀態(tài)到View State(譯注:當(dāng)原文中采用的是開(kāi)頭字母大寫的ViewState將不翻譯)中,最終生成HTML時(shí)它被系列化并保存在一個(gè)隱藏的表單域中。控件用ViewState來(lái)記憶它們?cè)陧?yè)面返回時(shí)被程序改變的狀態(tài),比如Web控件綁定的數(shù)據(jù)。如果視圖狀態(tài)允許信息可以在頁(yè)面返回時(shí)保持,它會(huì)增大發(fā)送到客戶端HTML代碼的尺寸,如果在沒(méi)有確切的監(jiān)控下會(huì)使頁(yè)面膨脹得很厲害。數(shù)據(jù)顯示控件-尤其是GridView控件-會(huì)顯著地增加大量的額外的標(biāo)記到頁(yè)面中。當(dāng)然,這些增長(zhǎng)可能對(duì)寬帶用戶毫無(wú)影響,但是視圖狀態(tài)會(huì)給撥號(hào)上網(wǎng)的用戶增加幾秒鐘的延遲。</p><p>要觀察視圖狀態(tài)的影響,在瀏覽器里打開(kāi)這個(gè)頁(yè)面然后查看頁(yè)面的源代碼(對(duì)于Internet Explorer,點(diǎn)擊”查看”菜單并且選擇源代碼選項(xiàng))。你還可以打開(kāi)頁(yè)面跟蹤選項(xiàng)以觀察這個(gè)頁(yè)面上每個(gè)控件的視圖狀態(tài)。視圖狀態(tài)的信息被系列化并放在位于跟隨在<form>標(biāo)簽后面的<div>元素里的名為_(kāi)VIEWSTATE的隱藏表單域中。</p><p>視圖狀態(tài)只在頁(yè)面上使用了Form時(shí)才會(huì)被保持;如果你的aspx頁(yè)面沒(méi)有包含<br/><form runat=”server”>的聲明,那么最后產(chǎn)生的HTML標(biāo)記中將不含有VIEWSTATE隱藏表單域。</p><p>母板頁(yè)產(chǎn)生的VIEWSTATE隱藏表單域大概有1800個(gè)字節(jié)。這些額外的數(shù)據(jù)主要是SiteMapDataSource控件為Repeater控件提供的數(shù)據(jù)內(nèi)容產(chǎn)生的。也許1800字節(jié)左右看起來(lái)還不算很多,但是使用了GridView并且使用了很多字段和記錄的視圖狀態(tài)很容易就膨脹10倍或更多。</p><p>可以將EnableViewState屬性設(shè)為false在頁(yè)面級(jí)或者控件級(jí)關(guān)閉視圖狀態(tài),從而可以減少產(chǎn)生的標(biāo)記的大小。Web控件利用視圖狀態(tài)在頁(yè)面返回時(shí)保持要綁定到數(shù)據(jù)顯示控件的數(shù)據(jù),當(dāng)關(guān)閉了數(shù)據(jù)顯示控件的視圖狀態(tài)后,在每次頁(yè)面返回時(shí)都必須重新綁定數(shù)據(jù)到控件。在asp.net 1.x的時(shí)候這個(gè)職責(zé)落到開(kāi)發(fā)者身上;在asp.net 2.0里,頁(yè)面返回時(shí),數(shù)據(jù)顯示控件會(huì)在必要的時(shí)候重新綁定數(shù)據(jù)。</p><p>設(shè)置Repeater控件的EnableViewState為false可以減少頁(yè)面的視圖狀態(tài)??梢酝ㄟ^(guò)屬性窗口設(shè)置或者在代碼視圖里手動(dòng)修改。通過(guò)這些改變,Repeater標(biāo)記將會(huì)像這樣:</p><pre><asp:Repeater runat="server" ID="menu" DataSourceID="SiteMapDataSource1"  EnableViewState="False">  <ItemTemplate>  ... <i>ItemTemplate contents omitted for brevity</i> ...  </ItemTemplate> </asp:Repeater></pre><p>經(jīng)過(guò)這些變化,頁(yè)面產(chǎn)生的視圖狀態(tài)減少到52個(gè)字節(jié),減少了97%的視圖狀態(tài)數(shù)據(jù)!在這個(gè)指南系列里我會(huì)關(guān)閉所有數(shù)據(jù)控件的視圖狀態(tài)以減少產(chǎn)生標(biāo)記的大小。在大多數(shù)例子里會(huì)在沒(méi)有提示的情況下將EnableViewState屬性設(shè)為false。</p><p>僅有當(dāng)數(shù)據(jù)Web控件必須打開(kāi)它的視圖狀態(tài)才能提供期望的功能的情況下我們才討論。</p><p><strong>步驟5:添加breadcrumb導(dǎo)航</strong></p><p>為完成母板頁(yè),讓我們給每個(gè)頁(yè)面添加一個(gè)breadcrumb導(dǎo)航UI元素。breadcrum導(dǎo)航會(huì)快速的顯示用戶當(dāng)前在站點(diǎn)中的位置。添加一個(gè)breadcrumb導(dǎo)航在asp.net 2.0中是簡(jiǎn)單的-只要添加一個(gè)SiteMapPath控件到頁(yè)面上就可以了;不需要更多的代碼。<br/>在我們的站點(diǎn)中,添加這個(gè)控件到頭部的<div>標(biāo)簽中:</p><pre><span class="breadcrumb">  <asp:SiteMapPath ID="SiteMapPath2" runat="server">  </asp:SiteMapPath> </span></pre><p>breadcrum導(dǎo)航控件顯示了用戶當(dāng)前訪問(wèn)的頁(yè)面以及它的父級(jí)節(jié)點(diǎn),直至到根節(jié)點(diǎn)(在我們的站點(diǎn)地圖中是Home)。</p><p><img src="/upload/otherpic7/32304.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖12:利用位置導(dǎo)航控件顯示在站點(diǎn)地圖層次中的當(dāng)前頁(yè)面及其父頁(yè)面</strong></p><p><strong>步驟6:給每個(gè)部分添加默認(rèn)頁(yè)面</strong></p><p>在我們的站點(diǎn)中這個(gè)課程被分成不同的分類-Basic Reporting,Filtering,Custom Formatting等等-每個(gè)分類有一個(gè)文件夾并且有對(duì)應(yīng)課程的aspx頁(yè)面。并且,每個(gè)文件夾里包含一個(gè)Default.aspx頁(yè)面。在這個(gè)默認(rèn)頁(yè)面中,將顯示這個(gè)部分的所有課程。比如,我們可以通過(guò)BasicReporting文件夾里的Default.aspx頁(yè)面連接到SimpleDisplay.aspx,DeclarativeParams.aspx和ProgrammaticParams.aspx。這里,我們可以再次使用SiteMap類和一個(gè)數(shù)據(jù)顯示控件顯示定義在Web.sitemap文件內(nèi)的站點(diǎn)地圖的信息。</p><p>讓我們?cè)俅问褂肦epeater顯示一個(gè)無(wú)序列表,不過(guò)這次我們會(huì)顯示指南的標(biāo)題和描述。我們需要在每個(gè)Default.aspx頁(yè)面重復(fù)這些標(biāo)記和代碼,我們可以將這個(gè)UI邏輯封裝成一個(gè)User Control。在站點(diǎn)中添加一個(gè)名為UserControls的文件夾并添加一個(gè)名為SectionLevelTutorialListing.ascx的Web用戶控件,它包含一下標(biāo)記:</p><p><img src="/upload/otherpic7/32305.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖13:向UserControls文件夾里添加新Web用戶控件</strong></p><p>SectionLevelTutorialListing.ascx</p><pre><%@ Control Language="CS" AutoEventWireup="true"  CodeFile="SectionLevelTutorialListing.ascx.cs"  Inherits="UserControls_SectionLevelTutorialListing" %> <asp:Repeater ID="TutorialList" runat="server" EnableViewState="False">  <HeaderTemplate><ul></HeaderTemplate>  <ItemTemplate>  <li><asp:HyperLink runat="server"   NavigateUrl='<%# Eval("Url") %>'   Text='<%# Eval("Title") %>'></asp:HyperLink>   - <%# Eval("Description") %></li>  </ItemTemplate>  <FooterTemplate></ul></FooterTemplate> </asp:Repeater></pre><p>SectionLevelTutorialListing.ascx.cs</p><pre>using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class UserControls_SectionLevelTutorialListing : UserControl {  protected void Page_Load(object sender, EventArgs e)  {  // If SiteMap.CurrentNode is not null,  // bind CurrentNode ChildNodes to the GridView  if (SiteMap.CurrentNode != null)  {   TutorialList.DataSource = SiteMap.CurrentNode.ChildNodes;   TutorialList.DataBind();  }  } }</pre><p>在前面的Repeater例子中我將SiteMap的數(shù)據(jù)綁定到Repeater上;當(dāng)然,這個(gè)SectionLevelTutorialListing用戶控件也將使用這種方法。在Page_Load事件里,有一個(gè)檢測(cè)程序以確保這是否是第一次訪問(wèn)該頁(yè)面(不是返回)并且這個(gè)頁(yè)面的URL要映射到站點(diǎn)地圖中的一個(gè)節(jié)點(diǎn)。如果頁(yè)面使用了這個(gè)用戶控件,那么就沒(méi)有對(duì)應(yīng)的<br/><siteMapNode>,SiteMap.CurrentNode會(huì)返回null并且將沒(méi)有數(shù)據(jù)綁定到Repeater控件。假設(shè)我們有一個(gè)CurrentNode,我可以將它的ChildNodes集合綁定到這個(gè)Repeater。每個(gè)部分的Default.aspx頁(yè)面是這個(gè)部分內(nèi)教程的父節(jié)點(diǎn),這些代碼會(huì)展示每個(gè)部分內(nèi)教程的連接和描述,下面是屏幕截圖:<br/>一旦這個(gè)Repeater創(chuàng)建好后,在設(shè)計(jì)視圖里打開(kāi)每個(gè)文件夾的Default.aspx頁(yè)面,將這個(gè)用戶控件拖到你要顯示的地方。</p><p><img src="/upload/otherpic7/32306.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖14:用戶控件已經(jīng)添加到Default.aspx頁(yè)面上</strong></p><p><img src="/upload/otherpic7/32307.png" alt="在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航"></p><p><strong>圖15:Basic Reporting指南的列表</strong></p><p>關(guān)于“在ASP.NET 2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。</p> <br> 當(dāng)前題目:在ASP.NET2.0中如何創(chuàng)建母版頁(yè)和站點(diǎn)導(dǎo)航-創(chuàng)新互聯(lián) <br> 新聞來(lái)源:<a href="http://weahome.cn/article/dsspeh.html">http://weahome.cn/article/dsspeh.html</a> </div> </div> </div> <div id="squ6kqw" class="other container"> <h3>其他資訊</h3> <ul> <li> <a href="/article/hioods.html">php檢查數(shù)組重復(fù)數(shù)據(jù) php找出數(shù)組中不重復(fù)的值</a> </li><li> <a href="/article/hehhpj.html">go語(yǔ)言的微吐槽 go的語(yǔ)法太奇葩</a> </li><li> <a href="/article/hioodj.html">vb.net點(diǎn)擊換圖片 vb怎么用按鈕實(shí)現(xiàn)圖片更換</a> </li><li> <a href="/article/hioodg.html">oracle臟讀如何解決 oracle臟讀查詢語(yǔ)句</a> </li><li> <a href="/article/hehhho.html">mysql怎么插入字符 mysql怎么拼接字符串</a> </li> </ul> </div> <div id="squ6kqw" class="footer"> <div id="squ6kqw" class="foota container"> <div id="squ6kqw" class="foot_nav fl col-lg-8 col-md-8 col-sm-12 col-xs-12"> <ul> <li id="squ6kqw" class="col-lg-3 col-md-3 col-sm-3 col-xs-6"> <h3>網(wǎng)站制作</h3> <a target="_blank">成都網(wǎng)站制作</a><a target="_blank">成都營(yíng)銷網(wǎng)站制作</a><a target="_blank">網(wǎng)站制作公司</a><a target="_blank">移動(dòng)手機(jī)網(wǎng)站制作</a><a target="_blank">成都網(wǎng)站制作公司</a><a target="_blank">成都網(wǎng)站制作</a> </li> <li id="squ6kqw" class="col-lg-3 col-md-3 col-sm-3 col-xs-6"> <h3>企業(yè)服務(wù)</h3> <a target="_blank">工商變更</a><a target="_blank">備案資質(zhì)管家服務(wù)</a><a target="_blank">代理記賬</a><a target="_blank">網(wǎng)站收錄</a><a target="_blank">網(wǎng)站免費(fèi)收錄</a><a target="_blank">軟文推廣</a> </li> <li id="squ6kqw" class="col-lg-3 col-md-3 col-sm-3 col-xs-6"> <h3>網(wǎng)站建設(shè)</h3> <a target="_blank">三臺(tái)網(wǎng)站建設(shè)</a><a target="_blank">成都網(wǎng)站建設(shè)報(bào)價(jià)</a><a target="_blank">節(jié)能環(huán)保網(wǎng)站建設(shè)方案</a><a target="_blank">上市集團(tuán)網(wǎng)站建設(shè)</a><a target="_blank">成都外貿(mào)網(wǎng)站建設(shè)公司</a><a target="_blank">營(yíng)銷網(wǎng)站建設(shè)</a> </li> <li id="squ6kqw" class="col-lg-3 col-md-3 col-sm-3 col-xs-6"> <h3>服務(wù)器托管</h3> <a target="_blank">綿陽(yáng)主機(jī)托管</a><a target="_blank">眉山服務(wù)器托管</a><a target="_blank">多線服務(wù)器托管</a><a target="_blank">服務(wù)器機(jī)柜租賃</a><a target="_blank">溫江服務(wù)器托管</a><a target="_blank">成都機(jī)柜租用</a> </li> </ul> </div> <div id="squ6kqw" class="footar fl col-lg-4 col-md-4 col-sm-12 col-xs-12"> <p>全國(guó)免費(fèi)咨詢:</p> <b>400-028-6601</b> <p>業(yè)務(wù)咨詢:028-86922220 / 13518219792</p> <p>節(jié)假值班:18980820575 / 13518219792</p> <p>聯(lián)系地址:成都市太升南路288號(hào)錦天國(guó)際A幢1002號(hào)</p> </div> </div> <div id="squ6kqw" class="footb"> <div id="squ6kqw" class="copy container"> <div id="squ6kqw" class="fl">Copyright ? 成都創(chuàng)新互聯(lián)科技有限公司重慶分公司 <a target="_blank">渝ICP備2021005571號(hào)</a></div> <!--<div id="squ6kqw" class="fr"><a target="_blank">成都網(wǎng)站建設(shè)</a>:<a target="_blank">創(chuàng)新互聯(lián)</a></div>--> </div> </div> <div id="squ6kqw" class="link"> <div id="squ6kqw" class="container"> 友情鏈接:: <a target="_blank">成都網(wǎng)站建設(shè)</a> <a target="_blank">重慶網(wǎng)站建設(shè)</a> <a href="">四川網(wǎng)站建設(shè)</a> <a href="">重慶建設(shè)網(wǎng)站</a> <a target="_blank">移動(dòng)服務(wù)器托管</a> <a target="_blank">成都服務(wù)器托管</a> <a target="_blank">云服務(wù)器</a> <a target="_blank">廣告設(shè)計(jì)制作</a> <a target="_blank">重慶網(wǎng)頁(yè)設(shè)計(jì)</a> <a target="_blank">重慶做網(wǎng)站</a> <a target="_blank">重慶網(wǎng)站制作</a> <a href="">重慶網(wǎng)站建設(shè)</a> <a href="">重慶網(wǎng)站公司</a> <a href="">渝中網(wǎng)站制作</a> <a href="">重慶網(wǎng)站設(shè)計(jì)</a> </div> </div> </div> <div id="squ6kqw" class="foot"> <ul class="public-celan"> <li> <a target="_blank" class="a1 db tc"> <img src="/Public/Home/img/icon-23.png" alt="" class="db auto"> <span id="squ6kqw" class="span-txt">在線咨詢</span> </a> </li> <li> <a href="tel:18980820575" class="a1 db tc"> <img src="/Public/Home/img/icon-24.png" alt="" class="db auto"> <span id="squ6kqw" class="span-txt">電話咨詢</span> </a> </li> <li> <a target="_blank" href="tencent://message/?uin=1683211881&Site=&Menu=yes" class="a1 db tc"> <img src="/Public/Home/img/icon-25.png" alt="" class="db auto"> <span id="squ6kqw" class="span-txt">QQ咨詢</span> </a> </li> <li> <a target="_blank" href="tencent://message/?uin=532337155&Site=&Menu=yes" class="a1 db tc public-yuyue-up"> <img src="/Public/Home/img/icon-26.png" alt="" class="db auto"> <span id="squ6kqw" class="span-txt">預(yù)約顧問(wèn)</span> </a> </li> </ul> </div> <div id="squ6kqw" class="customer"> <dl class="icon1"> <dt> <a href="tencent://message/?uin=1683211881&Site=&Menu=yes"> <i class="iconT"><img src="/Public/Home/img/QQ.png" alt=""></i> <p>在線咨詢</p> </a> </dt> </dl> <dl class="icon2"> <dt><i><img src="/Public/Home/img/weixin.png" alt=""></i><p>微信咨詢</p></dt> <dd><img src="/Public/Home/img/ewm.png"></dd> </dl> <dl class="icon3"> <dt><i><img src="/Public/Home/img/dianhua.png" alt=""></i><p>電話咨詢</p></dt> <dd> <p>028-86922220(工作日)</p> <p>18980820575(7×24)</p> </dd> </dl> <dl class="icon4"> <dt class="sShow"> <a href="tencent://message/?uin=244261566&Site=&Menu=yes"> <i><img src="/Public/Home/img/dengji.png" alt=""></i><p>提交需求</p> </a> </dt> </dl> <dl class="icon5"> <dt class="gotop"> <a href="#top"> <i><img src="/Public/Home/img/top.png" alt=""></i><p>返回頂部</p> </a> </dt> </dl> </div> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://weahome.cn/" title="真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆">真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆</a> <div class="friend-links"> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="4uosc" class="pl_css_ganrao" style="display: none;"><noframes id="4uosc"><bdo id="4uosc"><delect id="4uosc"></delect></bdo></noframes><abbr id="4uosc"></abbr><table id="4uosc"><tr id="4uosc"><ul id="4uosc"></ul></tr></table><small id="4uosc"><source id="4uosc"><pre id="4uosc"></pre></source></small><delect id="4uosc"></delect><th id="4uosc"></th><dd id="4uosc"></dd><noscript id="4uosc"><nav id="4uosc"><fieldset id="4uosc"></fieldset></nav></noscript><dd id="4uosc"><pre id="4uosc"><li id="4uosc"></li></pre></dd><ul id="4uosc"><table id="4uosc"><strong id="4uosc"></strong></table></ul><cite id="4uosc"><dd id="4uosc"><noframes id="4uosc"></noframes></dd></cite><code id="4uosc"><td id="4uosc"><sup id="4uosc"></sup></td></code><tr id="4uosc"></tr><strike id="4uosc"></strike><small id="4uosc"></small><strong id="4uosc"><td id="4uosc"><dfn id="4uosc"></dfn></td></strong><fieldset id="4uosc"></fieldset><cite id="4uosc"><source id="4uosc"><tr id="4uosc"></tr></source></cite><optgroup id="4uosc"></optgroup><noframes id="4uosc"><fieldset id="4uosc"><source id="4uosc"></source></fieldset></noframes><center id="4uosc"></center><center id="4uosc"></center><bdo id="4uosc"></bdo><tfoot id="4uosc"></tfoot><samp id="4uosc"></samp><noframes id="4uosc"><fieldset id="4uosc"><dd id="4uosc"></dd></fieldset></noframes><strike id="4uosc"></strike><td id="4uosc"></td><li id="4uosc"></li><s id="4uosc"><button id="4uosc"><strong id="4uosc"></strong></button></s><input id="4uosc"></input><center id="4uosc"><tbody id="4uosc"><blockquote id="4uosc"></blockquote></tbody></center><blockquote id="4uosc"><abbr id="4uosc"><tbody id="4uosc"></tbody></abbr></blockquote><abbr id="4uosc"></abbr><td id="4uosc"></td><acronym id="4uosc"></acronym><kbd id="4uosc"><pre id="4uosc"><wbr id="4uosc"></wbr></pre></kbd><nav id="4uosc"></nav><xmp id="4uosc"></xmp><sup id="4uosc"></sup><abbr id="4uosc"></abbr><pre id="4uosc"></pre><center id="4uosc"><samp id="4uosc"><tbody id="4uosc"></tbody></samp></center><wbr id="4uosc"></wbr><acronym id="4uosc"></acronym><center id="4uosc"></center><noscript id="4uosc"></noscript><code id="4uosc"><noframes id="4uosc"><ul id="4uosc"></ul></noframes></code><tfoot id="4uosc"></tfoot><tbody id="4uosc"></tbody><strike id="4uosc"></strike><wbr id="4uosc"></wbr><acronym id="4uosc"></acronym><noframes id="4uosc"></noframes><object id="4uosc"><small id="4uosc"><option id="4uosc"></option></small></object><bdo id="4uosc"></bdo><wbr id="4uosc"></wbr><tr id="4uosc"></tr><center id="4uosc"><strong id="4uosc"><optgroup id="4uosc"></optgroup></strong></center><bdo id="4uosc"><abbr id="4uosc"><tr id="4uosc"></tr></abbr></bdo><strike id="4uosc"></strike><kbd id="4uosc"></kbd><ul id="4uosc"><dfn id="4uosc"><center id="4uosc"></center></dfn></ul><dl id="4uosc"></dl><optgroup id="4uosc"></optgroup><center id="4uosc"></center><optgroup id="4uosc"></optgroup><center id="4uosc"><center id="4uosc"><th id="4uosc"></th></center></center><dl id="4uosc"></dl><code id="4uosc"></code><menu id="4uosc"></menu><input id="4uosc"><noscript id="4uosc"><em id="4uosc"></em></noscript></input><li id="4uosc"></li><th id="4uosc"><object id="4uosc"><small id="4uosc"></small></object></th><tr id="4uosc"></tr><del id="4uosc"><dfn id="4uosc"><source id="4uosc"></source></dfn></del><blockquote id="4uosc"></blockquote><wbr id="4uosc"></wbr><dl id="4uosc"><nav id="4uosc"><li id="4uosc"></li></nav></dl><li id="4uosc"><button id="4uosc"><samp id="4uosc"></samp></button></li><menu id="4uosc"></menu><button id="4uosc"></button><blockquote id="4uosc"></blockquote><th id="4uosc"></th><code id="4uosc"></code><blockquote id="4uosc"></blockquote><bdo id="4uosc"></bdo><small id="4uosc"></small><tfoot id="4uosc"><rt id="4uosc"><code id="4uosc"></code></rt></tfoot><noframes id="4uosc"><ul id="4uosc"><sup id="4uosc"></sup></ul></noframes><source id="4uosc"></source><nav id="4uosc"></nav><blockquote id="4uosc"></blockquote><code id="4uosc"><noframes id="4uosc"><abbr id="4uosc"></abbr></noframes></code><kbd id="4uosc"></kbd><tbody id="4uosc"><s id="4uosc"><bdo id="4uosc"></bdo></s></tbody><blockquote id="4uosc"></blockquote><blockquote id="4uosc"></blockquote><abbr id="4uosc"><kbd id="4uosc"><pre id="4uosc"></pre></kbd></abbr><menu id="4uosc"></menu></div> </html> <script> $(".con img").each(function(){ var src = $(this).attr("src"); //獲取圖片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //絕對(duì)路徑 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>