HierarchicalDataSourceView Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje zobrazení dat na uzlu nebo kolekci uzlů v hierarchické datové struktuře pro HierarchicalDataSourceControl ovládací prvek.
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
- Dědičnost
-
HierarchicalDataSourceView
- Odvozené
Příklady
Následující příklad kódu ukazuje, jak odvodit třídu z třídy k načtení dat z HierarchicalDataSourceView hierarchického úložiště dat, v tomto případě systému souborů. Třída FileSystemDataSourceView
je instance silného HierarchicalDataSourceView typu, která umožňuje hierarchické webové server ovládací prvky, jako TreeView je například ovládací prvek vytvořit vazbu k ovládacímu FileSystemDataSource
prvku a zobrazit informace o systému souborů. Pro účely zabezpečení se informace o systému souborů zobrazí jenom v případě, že se ovládací prvek zdroje dat používá v místním hostiteli, ověřeném scénáři a začíná jenom virtuálním adresářem, ve kterém se nachází stránka Web Forms pomocí ovládacího prvku zdroje dat. viewPath
V opačném případě se parametr předaný konstruktoru může použít k vytvoření zobrazení na základě aktuální cesty systému souborů. Tento příklad kódu je součástí většího příkladu zadaného HierarchicalDataSourceControl pro třídu.
public class FileSystemDataSourceView : HierarchicalDataSourceView
{
private string _viewPath;
public FileSystemDataSourceView(string viewPath)
{
HttpRequest currentRequest = HttpContext.Current.Request;
if (viewPath == "")
{
_viewPath = currentRequest.MapPath(currentRequest.ApplicationPath);
}
else
{
_viewPath = Path.Combine(
currentRequest.MapPath(currentRequest.ApplicationPath),
viewPath);
}
}
// Starting with the rootNode, recursively build a list of
// FileSystemInfo nodes, create FileSystemHierarchyData
// objects, add them all to the FileSystemHierarchicalEnumerable,
// and return the list.
public override IHierarchicalEnumerable Select()
{
HttpRequest currentRequest = HttpContext.Current.Request;
// SECURITY: There are many security issues that can be raised
// SECURITY: by exposing the file system structure of a Web server
// SECURITY: to an anonymous user in a limited trust scenario such as
// SECURITY: a Web page served on an intranet or the Internet.
// SECURITY: For this reason, the FileSystemDataSource only
// SECURITY: shows data when the HttpRequest is received
// SECURITY: from a local Web server. In addition, the data source
// SECURITY: does not display data to anonymous users.
if (currentRequest.IsAuthenticated &&
(currentRequest.UserHostAddress == "127.0.0.1" ||
currentRequest.UserHostAddress == "::1"))
{
DirectoryInfo rootDirectory = new DirectoryInfo(_viewPath);
if (!rootDirectory.Exists)
{
return null;
}
FileSystemHierarchicalEnumerable fshe =
new FileSystemHierarchicalEnumerable();
foreach (FileSystemInfo fsi
in rootDirectory.GetFileSystemInfos())
{
fshe.Add(new FileSystemHierarchyData(fsi));
}
return fshe;
}
else
{
throw new NotSupportedException(
"The FileSystemDataSource only " +
"presents data in an authenticated, localhost context.");
}
}
}
Public Class FileSystemDataSourceView
Inherits HierarchicalDataSourceView
Private _viewPath As String
Public Sub New(ByVal viewPath As String)
Dim currentRequest As HttpRequest = HttpContext.Current.Request
If viewPath = "" Then
_viewPath = currentRequest.MapPath(currentRequest.ApplicationPath)
Else
_viewPath = Path.Combine(currentRequest.MapPath(currentRequest.ApplicationPath), viewPath)
End If
End Sub
' Starting with the rootNode, recursively build a list of
' FileSystemInfo nodes, create FileSystemHierarchyData
' objects, add them all to the FileSystemHierarchicalEnumerable,
' and return the list.
Public Overrides Function [Select]() As IHierarchicalEnumerable
Dim currentRequest As HttpRequest = HttpContext.Current.Request
' SECURITY: There are many security issues that can be raised
' SECURITY: by exposing the file system structure of a Web server
' SECURITY: to an anonymous user in a limited trust scenario such as
' SECURITY: a Web page served on an intranet or the Internet.
' SECURITY: For this reason, the FileSystemDataSource only
' SECURITY: shows data when the HttpRequest is received
' SECURITY: from a local Web server. In addition, the data source
' SECURITY: does not display data to anonymous users.
If currentRequest.IsAuthenticated AndAlso _
(currentRequest.UserHostAddress = "127.0.0.1" OrElse _
currentRequest.UserHostAddress = "::1") Then
Dim rootDirectory As New DirectoryInfo(_viewPath)
Dim fshe As New FileSystemHierarchicalEnumerable()
Dim fsi As FileSystemInfo
For Each fsi In rootDirectory.GetFileSystemInfos()
fshe.Add(New FileSystemHierarchyData(fsi))
Next fsi
Return fshe
Else
Throw New NotSupportedException( _
"The FileSystemDataSource only " + _
"presents data in an authenticated, localhost context.")
End If
End Function 'Select
End Class
Poznámky
ASP.NET podporuje architekturu datové vazby, která umožňuje ovládacím prvkům webového serveru svázat data a prezentovat je konzistentním způsobem. Ovládací prvky webového serveru, které sváže data, se nazývají ovládací prvky vázané na data a třídy, které usnadňují vazbu, se nazývají ovládací prvky zdroje dat. Ovládací prvky zdroje dat můžou představovat jakýkoli zdroj dat: soubor, datový proud, relační databázi, obchodní objekt atd. Ovládací prvky zdroje dat představují data konzistentním způsobem pro ovládací prvky vázané na data bez ohledu na zdroj nebo formát podkladových dat.
Ovládací prvky zdroje dat, které představují hierarchická data odvozená z abstraktní HierarchicalDataSourceControl třídy. Ovládací prvek zdroje dat si můžete představit jako kombinaci objektu správy zdrojů dat a souvisejících zobrazení podkladových dat, která jsou reprezentována objekty zobrazení zdroje dat. Hierarchické ovládací prvky zdroje dat podporují zobrazení hierarchického zdroje dat pro každou hierarchickou úroveň dat, která představují. Zobrazení zdroje dat nejsou pojmenovaná, například DataSourceView objekty přidružené k ovládacímu DataSourceControl prvku, ale jsou identifikovány jejich jedinečnou hierarchickou cestou.
Zobrazení zdrojů dat definují možnosti ovládacího prvku zdroje dat. Všechny objekty zobrazení zdroje dat, včetně HierarchicalDataSourceView, podporují načítání dat z podkladového zdroje dat pomocí Select metody, která načte hierarchický seznam dat jako IHierarchicalEnumerable objekt. Všechny objekty zobrazení zdroje dat volitelně podporují základní sadu funkcí, včetně operací, jako Insertjsou , , UpdateDeletea řazení. Ovládací prvek vázané na data může zjistit možnosti ovládacího prvku zdroje dat načtením přidruženého zobrazení zdroje dat pomocí GetHierarchicalView metody a dotazováním zobrazení v době návrhu nebo v době běhu. HierarchicalDataSourceView v současné době nepodporuje Insertani Update Delete operace.
Poznámky pro implementátory
Když dědíte z HierarchicalDataSourceView, musíte přepsat následující člen: Select().
Konstruktory
HierarchicalDataSourceView() |
Inicializuje novou instanci HierarchicalDataSourceView třídy. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Select() |
Získá seznam všech datových položek v zobrazení. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |