Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

HierarchicalDataSourceView.Select méthode ()

 

Date de publication : novembre 2016

Obtient une liste de tous les éléments de données dans la vue.

Espace de noms:   System.Web.UI
Assembly:  System.Web (dans System.Web.dll)

public abstract IHierarchicalEnumerable Select()

Valeur de retour

Type: System.Web.UI.IHierarchicalEnumerable

Un IHierarchicalEnumerable collection d’éléments de données.

Le Select méthode renvoie une IHierarchicalEnumerable collection d’éléments de données dans l’affichage actuel. Vous pouvez appeler la GetEnumerator méthode pour obtenir un IEnumerator de l’objet et effectuer une itération dans la collection d’éléments de données.

L’exemple de code suivant montre comment substituer la Select méthode dans une classe qui dérive de la HierarchicalDataSourceView classe à récupérer hiérarchique FileSystemInfo les données à partir d’un système de fichiers. Pour des raisons de sécurité, informations système de fichiers s’affiche uniquement si le contrôle de source de données est utilisé dans un localhost, scénario authentifié et commencent uniquement par le répertoire virtuel contenant la page Web Forms à l’aide du contrôle de source de données. Dans le cas contraire, le viewPath paramètre passé au constructeur de l’objet view peut être utilisé pour créer une vue basée sur le chemin d’accès du système de fichier en cours. Cet exemple de code fait partie d’un exemple plus complet fourni pour la 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.");
        }
    }
}

.NET Framework
Disponible depuis 2.0
Retour au début
Afficher: