HierarchicalDataSourceView Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma exibição de dados em um nó ou coleção de nós em uma estrutura de dados hierárquica para um HierarchicalDataSourceControl controle.
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
- Herança
-
HierarchicalDataSourceView
- Derivado
Exemplos
O exemplo de código a seguir demonstra como derivar uma classe da HierarchicalDataSourceView classe para recuperar dados do armazenamento de dados hierárquico, nesse caso, um sistema de arquivos. A FileSystemDataSourceView classe é uma instância fortemente tipada HierarchicalDataSourceView que permite controles de servidor Web hierárquicos, como o TreeView controle, para associar a um FileSystemDataSource controle e exibir informações do sistema de arquivos. Para fins de segurança, as informações do sistema de arquivos são exibidas somente se o controle da fonte de dados estiver sendo usado em um localhost, cenário autenticado e só começar com o diretório virtual no qual a página web forms que usa o controle da fonte de dados reside. Caso contrário, o viewPath parâmetro passado para o construtor pode ser usado para criar uma exibição com base no caminho atual do sistema de arquivos. Este exemplo de código faz parte de um exemplo maior fornecido para a HierarchicalDataSourceControl classe.
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
Comentários
ASP.NET dá suporte a uma arquitetura de associação de dados que permite que os controles do servidor Web se associem aos dados e os apresentem de forma consistente. Os controles do servidor Web que se associam aos dados são chamados de controles associados a dados e as classes que facilitam essa associação são chamadas de controles de fonte de dados. Os controles de fonte de dados podem representar qualquer fonte de dados: um arquivo, um fluxo, um banco de dados relacional, um objeto de negócios e assim por diante. Os controles da fonte de dados apresentam dados de maneira consistente para controles associados a dados, independentemente da origem ou formato dos dados subjacentes.
Os controles de fonte de dados que representam dados hierárquicos derivam da classe abstrata HierarchicalDataSourceControl . Você pode pensar em um controle da fonte de dados como a combinação do objeto de controle da fonte de dados e suas exibições associadas nos dados subjacentes, que são representados por objetos de exibição da fonte de dados. Os controles de fonte de dados hierárquica dão suporte a uma exibição de fonte de dados hierárquica para cada nível hierárquico de dados que eles representam. As exibições da fonte de dados não são nomeadas, como os DataSourceView objetos associados a um DataSourceControl controle, mas são identificadas por seu caminho hierárquico exclusivo.
As exibições da fonte de dados definem os recursos de um controle da fonte de dados. Todos os objetos de exibição da fonte de dados, incluindo HierarchicalDataSourceView, dão suporte à recuperação de dados da fonte de dados subjacente usando o Select método, que recupera uma lista hierárquica de dados como um IHierarchicalEnumerable objeto. Opcionalmente, todos os objetos de exibição da fonte de dados dão suporte a um conjunto básico de recursos, incluindo operações como Insert, Updatee Deleteclassificação. Um controle associado a dados pode descobrir os recursos de um controle de fonte de dados recuperando uma exibição de fonte de dados associada usando o GetHierarchicalView método e consultando a exibição em tempo de design ou em tempo de execução. HierarchicalDataSourceViewatualmente não dá suporte Inserta operações ou Delete operaçõesUpdate.
Notas aos Implementadores
Ao herdar, HierarchicalDataSourceViewvocê deve substituir o seguinte membro: Select().
Construtores
| Nome | Description |
|---|---|
| HierarchicalDataSourceView() |
Inicializa uma nova instância da classe HierarchicalDataSourceView. |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Select() |
Obtém uma lista de todos os itens de dados na exibição. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |