HierarchicalDataSourceView.Select Метод
Определение
Возвращает список всех элементов данных в представлении.Gets a list of all the data items in the view.
public:
abstract System::Web::UI::IHierarchicalEnumerable ^ Select();
public abstract System.Web.UI.IHierarchicalEnumerable Select ();
abstract member Select : unit -> System.Web.UI.IHierarchicalEnumerable
Public MustOverride Function Select () As IHierarchicalEnumerable
Возвращаемое значение
Коллекция IHierarchicalEnumerable элементов данных.An IHierarchicalEnumerable collection of data items.
Примеры
В следующем примере кода показано, как переопределить Select метод в классе, производном от HierarchicalDataSourceView класса, для извлечения иерархических FileSystemInfo данных из файловой системы.The following code example demonstrates how to override the Select method in a class that derives from the HierarchicalDataSourceView class to retrieve hierarchical FileSystemInfo data from a file system. В целях безопасности сведения о файловой системе отображаются только в том случае, если элемент управления источника данных используется в локальном узле, прошедшем проверку подлинности сценарии и начинается с виртуального каталога, в котором находится страница веб-форм, использующая элемент управления источниками данных.For security purposes, file system information is displayed only if the data source control is being used in a localhost, authenticated scenario, and only starts with the virtual directory that the Web Forms page using the data source control resides in. В противном случае viewPath
параметр, передаваемый конструктору объекта представления, может быть использован для создания представления на основе текущего пути файловой системы.Otherwise, the viewPath
parameter passed to the constructor of the view object might be used to create a view based on the current file system path. Этот пример кода является частью большого примера, приведенного для HierarchicalDataSourceControl класса.This code example is part of a larger example provided for the HierarchicalDataSourceControl class.
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
Комментарии
SelectМетод возвращает IHierarchicalEnumerable коллекцию элементов данных в текущем представлении.The Select method returns an IHierarchicalEnumerable collection of data items in the current view. Можно вызвать метод, GetEnumerator чтобы получить IEnumerator объект и выполнить итерацию по коллекции элементов данных.You can call the GetEnumerator method to get an IEnumerator object and iterate through the collection of data items.