SiteMapDataSource 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供資料來源控制項,Web 伺服器控制項和其他控制項可以使用這個資料來源控制項來繫結程序至階層式網站地圖資料。
public ref class SiteMapDataSource : System::Web::UI::HierarchicalDataSourceControl, System::ComponentModel::IListSource, System::Web::UI::IDataSource
[System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.SiteMapDataSource))]
public class SiteMapDataSource : System.Web.UI.HierarchicalDataSourceControl, System.ComponentModel.IListSource, System.Web.UI.IDataSource
[<System.Drawing.ToolboxBitmap(typeof(System.Web.UI.WebControls.SiteMapDataSource))>]
type SiteMapDataSource = class
inherit HierarchicalDataSourceControl
interface IDataSource
interface IListSource
Public Class SiteMapDataSource
Inherits HierarchicalDataSourceControl
Implements IDataSource, IListSource
- 繼承
- 屬性
- 實作
範例
下列程式代碼範例示範如何使用 控件,以宣告方式將控件系結 TreeView 至網站地圖 SiteMapDataSource 。 網站地圖數據是從根節點層級開始擷取。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:SiteMapDataSource
id="SiteMapDataSource1"
runat="server" />
<asp:TreeView
id="TreeView1"
runat="server"
DataSourceID="SiteMapDataSource1">
</asp:TreeView>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:SiteMapDataSource
id="SiteMapDataSource1"
runat="server" />
<asp:TreeView
id="TreeView1"
runat="server"
DataSourceID="SiteMapDataSource1">
</asp:TreeView>
</form>
</body>
</html>
備註
本主題內容:
簡介
控件 SiteMapDataSource 是網站地圖數據的數據源,由為您的網站設定的網站地圖提供者所儲存。 SiteMapDataSource可讓不是特定網站導覽控件的網頁伺服器控件,例如TreeView、 Menu和 DropDownList 控件,系結至階層式網站地圖數據。 您可以使用這些網頁伺服器控制件,將網站地圖顯示為目錄,或主動瀏覽網站。 或者,您可以使用 SiteMapPath 特別設計為網站導覽控件的控件,因此不需要控件的 SiteMapDataSource 實例。
指定起始節點
系 SiteMapDataSource 結至網站地圖數據,並根據網站地圖階層中的指定起始節點呈現其檢視。 根據預設,它是階層的根節點,但它也可以是階層中的任何節點。 起始節點是由數 SiteMapDataSource 個屬性的值所識別,如下所示:
啟動節點 | 屬性值 |
---|---|
階層的根節點 (預設設定) 。 |
StartFromCurrentNode 為 false 。StartingNodeUrl 未設定。 |
表示目前檢視頁面的節點。 |
StartFromCurrentNode 為 true 。StartingNodeUrl 未設定。 |
階層的特定節點。 |
StartFromCurrentNode 為 false 。已 StartingNodeUrl 設定 。 |
StartingNodeOffset如果 屬性設定為 0 以外的值,則會影響起始節點,並隨著該節點影響控件所SiteMapDataSource公開的月臺地圖數據階層。 的負數或正整數值StartingNodeOffset會從 和 StartingNodeUrl 屬性所識別StartFromCurrentNode的起始節點,識別月臺地圖階層向上或向下的層級數目,以位移數據源控件所公開之子樹的起始節點。
StartingNodeOffset如果屬性設定為負數 -n,數據源控件所公開之子樹的起始節點是識別起始節點上方的上階節點 n 階層式層級。 如果值 n 大於階層式樹狀結構中的上階層級數目,則子樹的起始節點是月臺地圖階層的根節點。
StartingNodeOffset如果屬性設定為正數 +n,所公開子樹的起始節點是識別起始節點下方的子節點 n 層。 因為階層中可能有多個子節點分支存在,因此, SiteMapDataSource 如果可能的話,會嘗試直接解析所識別起始節點與代表目前要求頁面之節點之間的路徑上的子節點。 如果代表目前要求頁面的節點不在所識別起始節點的子樹中,則會忽略 屬性的值 StartingNodeOffset 。 如果代表目前要求之頁面的節點低於所識別起始節點的 n 個層級,則目前要求的頁面節點會當做起始節點使用。
擷取網站地圖數據
網站地圖數據是從物件擷取 SiteMapProvider ,例如 XmlSiteMapProvider,這是 ASP.NET 的默認網站地圖提供者。 您可以指定為網站設定的任何提供者,以提供網站地圖數據給 , SiteMapDataSource 並可以藉由存取 SiteMap.Providers 集合來取得可用的提供者清單。
就像所有數據源控件一樣,的每個實例 SiteMapDataSource 都會與單一協助程式對象相關聯,稱為數據源檢視。 SiteMapDataSourceView是網站地圖數據的檢視,根據數據源的屬性,並藉由呼叫 GetHierarchicalView 方法來擷取。 會SiteMapDataSourceViewSiteMapNodeCollection維護控件系結的物件。
根據預設,起始節點是階層的根節點,但您可以將起始節點設定為任何節點。 起點可以是相對於網站地圖中目前位置或絕對位置的節點。 您可以藉由設定 StartingNodeUrl 屬性來指定起始節點。
SiteMapDataSource適用於瀏覽數據,不支援常見的數據源作業,例如排序、篩選、分頁、快取或數據記錄作業,例如更新、插入或刪除。
宣告式語法
<asp:SiteMapDataSource
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
ShowStartingNode="True|False"
SiteMapProvider="string"
SkinID="string"
StartFromCurrentNode="True|False"
StartingNodeOffset="integer"
StartingNodeUrl="uri"
Visible="True|False"
/>
建構函式
SiteMapDataSource() |
初始化 SiteMapDataSource 類別的新執行個體。 |
屬性
Adapter |
針對控制項取得瀏覽器的特定配置器。 (繼承來源 Control) |
AppRelativeTemplateSourceDirectory |
取得或設定包含了此控制項之 Page 或 UserControl 物件的相對應用程式虛擬目錄。 (繼承來源 Control) |
BindingContainer |
取得包含了此控制項之資料繫結的控制項。 (繼承來源 Control) |
ChildControlsCreated |
取得值,指出是否已經建立伺服器控制項的子控制項。 (繼承來源 Control) |
ClientID |
取得 ASP.NET 產生的伺服器控制項識別項。 (繼承來源 HierarchicalDataSourceControl) |
ClientIDMode |
這個屬性不會用於資料來源控制項。 (繼承來源 HierarchicalDataSourceControl) |
ClientIDSeparator |
取得字元值,表示在 ClientID 屬性中所使用的分隔字元。 (繼承來源 Control) |
ContainsListCollection |
取得值,指出資料來源控制項是否包含資料來源檢視物件的集合。 |
Context |
取得與目前 Web 要求的伺服器控制項關聯的 HttpContext 物件。 (繼承來源 Control) |
Controls |
取得 ControlCollection 物件,表示 UI 階層架構中指定之伺服器控制項的子控制項。 (繼承來源 HierarchicalDataSourceControl) |
DataItemContainer |
如果命名容器實作 IDataItemContainer,則取得命名容器的參考。 (繼承來源 Control) |
DataKeysContainer |
如果命名容器實作 IDataKeysControl,則取得命名容器的參考。 (繼承來源 Control) |
DesignMode |
取得值,指出控制項是否正用於設計介面上。 (繼承來源 Control) |
EnableTheming |
取得值,指出這個控制項是否支援佈景主題。 (繼承來源 HierarchicalDataSourceControl) |
EnableViewState |
取得或設定值,該值表示伺服器控制項是否對要求的用戶端而言保持其檢視狀態,以及它包含的任何子控制項狀態。 (繼承來源 Control) |
Events |
取得控制項事件處理常式委派 (Delegate) 的清單。 這個屬性是唯讀的。 (繼承來源 Control) |
HasChildViewState |
取得值,指出目前伺服器控制項的子控制項是否有任何已儲存的檢視狀態設定。 (繼承來源 Control) |
ID |
取得或設定指派給伺服器控制項的程式設計識別項。 (繼承來源 Control) |
IdSeparator |
取得用來分隔控制項識別項的字元。 (繼承來源 Control) |
IsChildControlStateCleared |
取得值,指出這個控制項中所包含的控制項是否有控制項狀態。 (繼承來源 Control) |
IsTrackingViewState |
取得值,指出伺服器控制項是否正在儲存檢視狀態的變更。 (繼承來源 Control) |
IsViewStateEnabled |
取得值,指出這個控制項是否已啟用檢視狀態。 (繼承來源 Control) |
LoadViewStateByID |
取得值,指出控制項是否依 ID (而不是索引) 參與載入其檢視狀態。 (繼承來源 Control) |
NamingContainer |
取得伺服器控制項命名容器的參考,其建立唯一命名空間,在具有相同 ID 屬性值的伺服器控制項之間作區別。 (繼承來源 Control) |
Page |
取得含有伺服器控制項的 Page 執行個體的參考。 (繼承來源 Control) |
Parent |
在網頁控制階層架構中取得伺服器控制項之父控制項的參考。 (繼承來源 Control) |
Provider |
取得或設定與資料來源控制項關聯的 SiteMapProvider 物件。 |
RenderingCompatibility |
取得值,這個值會指定將與呈現 HTML 相容的 ASP.NET 版本。 (繼承來源 Control) |
ShowStartingNode |
取得或設定值,指出是否擷取並顯示開始節點。 |
Site |
當呈現在設計介面上時,取得裝載目前控制項之容器的資訊。 (繼承來源 Control) |
SiteMapProvider |
取得或設定資料來源所繫結的網站導覽提供者名稱。 |
SkinID |
取得或設定要套用至 HierarchicalDataSourceControl 控制項的面板。 (繼承來源 HierarchicalDataSourceControl) |
StartFromCurrentNode |
取得或設定值,指出網站導覽節點樹是否使用表示目前頁面的節點所擷取。 |
StartingNodeOffset |
取得或設定從開始節點位移的正整數或負整數,判斷資料來源控制項所公開的根階層架構。 |
StartingNodeUrl |
取得或設定網站導覽中的節點,然後資料來源會使用該節點做為參考點,從階層式網站導覽擷取節點。 |
TemplateControl |
取得或設定包含了此控制項之樣板的參考。 (繼承來源 Control) |
TemplateSourceDirectory |
取得包含目前伺服器控制項的 Page 或 UserControl 的虛擬目錄。 (繼承來源 Control) |
UniqueID |
取得伺服器控制項唯一的、符合階層架構的識別項。 (繼承來源 Control) |
ValidateRequestMode |
取得或設定值,指出控制項是否對來自瀏覽器的用戶端輸入檢查潛在的危險值。 (繼承來源 Control) |
ViewState |
取得狀態資訊的字典,允許您在相同網頁的多個要求之間,儲存和還原伺服器控制項的檢視狀態。 (繼承來源 Control) |
ViewStateIgnoresCase |
取得值,指出 StateBag 物件是否不區分大小寫。 (繼承來源 Control) |
ViewStateMode |
取得或設定這個控制項的檢視狀態模式。 (繼承來源 Control) |
Visible |
取得或設定值,指出是否視覺化顯示控制項。 (繼承來源 HierarchicalDataSourceControl) |
方法
事件
DataBinding |
發生於伺服器控制項繫結至資料來源時。 (繼承來源 Control) |
Disposed |
發生於伺服器控制項從記憶體釋放時,這是在要求 ASP.NET 網頁時,伺服器控制項生命週期的最後階段。 (繼承來源 Control) |
Init |
發生於初始化伺服器控制項時,是其生命週期中的第一個步驟。 (繼承來源 Control) |
Load |
發生於載入伺服器控制項至 Page 物件時。 (繼承來源 Control) |
PreRender |
在 Control 物件載入之後但在呈現之前發生。 (繼承來源 Control) |
Unload |
發生於伺服器控制項從記憶體卸載時。 (繼承來源 Control) |
明確介面實作
擴充方法
FindDataSourceControl(Control) |
傳回與指定之控制項的資料控制項相關聯的資料來源。 |
FindFieldTemplate(Control, String) |
傳回在指定之控制項的命名容器中所指定資料行的欄位樣板。 |
FindMetaTable(Control) |
傳回包含資料控制項的中繼資料表物件。 |
GetDefaultValues(IDataSource) |
取得所指定資料來源的預設值集合。 |
GetMetaTable(IDataSource) |
取得所指定資料來源物件中的資料表中繼資料。 |
TryGetMetaTable(IDataSource, MetaTable) |
判斷資料表中繼資料是否可供使用。 |