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ın nasıl türetilmiş olduğunu gösterir. Bu örnekte dosya sistemi. FileSystemDataSourceView
sınıfı, denetim gibi TreeView hiyerarşik Web sunucusu denetimlerinin bir denetime bağlanmasına ve dosya sistemi bilgilerini görüntülemesine olanak tanıyan kesin olarak belirlenmiş HierarchicalDataSourceView 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ıflara veri kaynağı denetimleri adı verilir. 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 DataSourceControl denetimle ilişkili nesneler gibi DataSourceView 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 IHierarchicalEnumerable alan yöntemini kullanarak Select temel alınan veri kaynağından veri almayı destekler. Tüm veri kaynağı görünümü nesneleri isteğe bağlı olarak , Update, Deleteve sıralama gibi işlemler de Insertdahil 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 Update Delete işlemlerini desteklememektedirInsert.
Uygulayanlara Notlar
öğesinden HierarchicalDataSourceViewdevraldığınızda, şu üyeyi geçersiz kılmalısınız: Select().
Oluşturucular
HierarchicalDataSourceView() |
HierarchicalDataSourceView sınıfının yeni bir örneğini başlatır. |
Yöntemler
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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ 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 dizeyi döndürür. (Devralındığı yer: Object) |