HierarchicalDataSourceView Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir denetim için HierarchicalDataSourceControl hiyerarşik veri yapısındaki bir düğüm veya düğüm koleksiyonundaki veri görünümünü temsil eder.
public ref class HierarchicalDataSourceView abstract
public abstract class HierarchicalDataSourceView
type HierarchicalDataSourceView = class
Public MustInherit Class HierarchicalDataSourceView
- Devralma
-
HierarchicalDataSourceView
- Türetilmiş
Örnekler
Aşağıdaki kod örneği, hiyerarşik veri depolamadan veri almak için sınıfından HierarchicalDataSourceView bir sınıf türetmeyi gösterir. Bu örnekte dosya sistemi.
FileSystemDataSourceView sınıfı, denetimin bir denetime bağlanması ve dosya sistemi bilgilerini görüntülemesi gibi HierarchicalDataSourceView hiyerarşik Web sunucusu denetimlerini etkinleştiren kesin olarak belirlenmiş TreeView bir FileSystemDataSource örnektir. Güvenlik amacıyla, dosya sistemi bilgileri yalnızca veri kaynağı denetimi localhost, kimliği doğrulanmış bir senaryoda kullanılıyorsa ve yalnızca veri kaynağı denetimini kullanan Web Forms sayfasının bulunduğu sanal dizinle başlıyorsa görüntülenir. Aksi takdirde, viewPath oluşturucuya geçirilen parametre geçerli dosya sistemi yolunu temel alan bir görünüm oluşturmak için kullanılabilir. Bu kod örneği, sınıfı için HierarchicalDataSourceControl sağlanan daha büyük bir örneğin parçasıdır.
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
Açıklamalar
ASP.NET, Web sunucusu denetimlerinin verilere bağlanmasını ve tutarlı bir şekilde sunmayı sağlayan bir veri bağlama mimarisini destekler. Verilere bağlanan web sunucusu denetimleri, veriye bağlı denetimler olarak adlandırılır ve bağlamayı kolaylaştıran sınıflar veri kaynağı denetimleri olarak adlandırılır. Veri kaynağı denetimleri herhangi bir veri kaynağını temsil edebilir: dosya, akış, ilişkisel veritabanı, iş nesnesi vb. Veri kaynağı denetimleri, temel alınan verilerin kaynağından veya biçiminden bağımsız olarak verileri veriye bağlı denetimlere tutarlı bir şekilde sunar.
Hiyerarşik verileri temsil eden veri kaynağı denetimleri soyut HierarchicalDataSourceControl sınıftan türetilir. Bir veri kaynağı denetimini, veri kaynağı denetim nesnesinin ve temel alınan verilerde veri kaynağı görünümü nesneleriyle temsil edilen ilişkili görünümlerinin birleşimi olarak düşünebilirsiniz. Hiyerarşik veri kaynağı denetimleri, temsil ettikleri her hiyerarşik veri düzeyi için hiyerarşik veri kaynağı görünümünü destekler. Veri kaynağı görünümleri, bir DataSourceView denetimle ilişkili nesneler gibi DataSourceControl adlandırılmaz, ancak benzersiz hiyerarşik yollarıyla tanımlanır.
Veri kaynağı görünümleri, veri kaynağı denetiminin özelliklerini tanımlar. dahil olmak üzere HierarchicalDataSourceViewtüm veri kaynağı görünümü nesneleri, hiyerarşik bir veri listesini nesne olarak Select alan yöntemini kullanarak IHierarchicalEnumerable temel alınan veri kaynağından veri almayı destekler. Tüm veri kaynağı görünüm nesneleri isteğe bağlı olarak , Insert, Updateve sıralama gibi işlemler de Deletedahil olmak üzere temel bir özellik kümesini destekler. Veriye bağlı denetim, yöntemini kullanarak GetHierarchicalView ilişkili bir veri kaynağı görünümünü alarak ve görünümü tasarım zamanında veya çalışma zamanında sorgulayarak veri kaynağı denetiminin özelliklerini bulabilir. HierarchicalDataSourceViewşu anda veya InsertUpdate işlemlerini desteklememektedirDelete.
Uygulayanlara Notlar
öğesinden HierarchicalDataSourceViewdevraldığınızda, şu üyeyi geçersiz kılmalısınız: Select().
Oluşturucular
| Name | Description |
|---|---|
| HierarchicalDataSourceView() |
HierarchicalDataSourceView sınıfının yeni bir örneğini başlatır. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Select() |
Görünümdeki tüm veri öğelerinin listesini alır. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |