İngilizce dilinde oku

Aracılığıyla paylaş


HierarchicalDataSourceView Sınıf

Tanım

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.

C#
public abstract 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.

C#
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.");
        }
    }
}

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)

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

Ayrıca bkz.