HierarchicalDataBoundControl.GetData メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim viewPath As String Dim returnValue As HierarchicalDataSourceView returnValue = Me.GetData(viewPath)
戻り値
データ操作を実行するためにデータ バインド コントロールが使用する HierarchicalDataSourceView オブジェクト。


GetData メソッドは、GetDataSource メソッドを呼び出すことで、関連するデータ ソース コントロールから HierarchicalDataSourceView オブジェクトを取得します。

GetData メソッドを呼び出して、関連するデータ ソース コントロールから HierarchicalDataSourceView オブジェクトを取得する方法、および HierarchicalDataSourceView.Select メソッドを呼び出して、データを取得する方法を次のコード例に示します。このコード例は、HierarchicalDataBoundControl クラスのトピックで取り上げているコード例の一部分です。
Protected Overrides Sub PerformDataBinding() MyBase.PerformDataBinding() ' Do not attempt to bind data if there is no ' data source set. If Not IsBoundUsingDataSourceID AndAlso DataSource Is Nothing Then Return End If Dim view As HierarchicalDataSourceView = GetData(RootNode.DataPath) If view Is Nothing Then Throw New InvalidOperationException _ ("No view returned by data source control.") End If Dim enumerable As IHierarchicalEnumerable = view.Select() If Not (enumerable Is Nothing) Then Nodes.Clear() Try RecurseDataBindInternal(RootNode, enumerable, 1) Finally End Try End If End Sub ' PerformDataBinding Private Sub RecurseDataBindInternal(ByVal node As TreeNode, _ ByVal enumerable As IHierarchicalEnumerable, _ ByVal depth As Integer) Dim item As Object For Each item In enumerable Dim data As IHierarchyData = enumerable.GetHierarchyData(item) If Not data Is Nothing Then ' Create an object that represents the bound data ' to the control. Dim newNode As New TreeNode() Dim rvnode As New RootViewNode() rvnode.Node = newNode rvnode.Depth = depth ' The dataItem is not just a string, but potentially ' an XML node or some other container. ' If DataTextField is set, use it to determine which ' field to render. Otherwise, use the first field. If DataTextField.Length > 0 Then newNode.Text = DataBinder.GetPropertyValue _ (data, DataTextField, Nothing) Else Dim props As PropertyDescriptorCollection = _ TypeDescriptor.GetProperties(data) ' Set the "default" value of the node. newNode.Text = String.Empty ' Set the true data-bound value of the TextBox, ' if possible. If props.Count >= 1 Then If Not props(0).GetValue(data) Is Nothing Then newNode.Text = props(0).GetValue(data).ToString() End If End If End If Nodes.Add(rvnode) If data.HasChildren Then Dim newEnumerable As IHierarchicalEnumerable = _ data.GetChildren() If Not (newEnumerable Is Nothing) Then RecurseDataBindInternal(newNode, _ newEnumerable, depth + 1) End If End If If MaxDepth < depth Then MaxDepth = depth End If End If Next item End Sub 'RecurseDataBindInternal
protected override void PerformDataBinding() { base.PerformDataBinding(); // Do not attempt to bind data if there is no // data source set. if (!IsBoundUsingDataSourceID && (DataSource == null)) { return; } HierarchicalDataSourceView view = GetData(RootNode.DataPath); if (view == null) { throw new InvalidOperationException ("No view returned by data source control."); } IHierarchicalEnumerable enumerable = view.Select(); if (enumerable != null) { Nodes.Clear(); try { RecurseDataBindInternal(RootNode, enumerable, 1); } finally { } } } private void RecurseDataBindInternal(TreeNode node, IHierarchicalEnumerable enumerable, int depth) { foreach(object item in enumerable) { IHierarchyData data = enumerable.GetHierarchyData(item); if (null != data) { // Create an object that represents the bound data // to the control. TreeNode newNode = new TreeNode(); RootViewNode rvnode = new RootViewNode(); rvnode.Node = newNode; rvnode.Depth = depth; // The dataItem is not just a string, but potentially // an XML node or some other container. // If DataTextField is set, use it to determine which // field to render. Otherwise, use the first field. if (DataTextField.Length > 0) { newNode.Text = DataBinder.GetPropertyValue (data, DataTextField, null); } else { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(data); // Set the "default" value of the node. newNode.Text = String.Empty; // Set the true data-bound value of the TextBox, // if possible. if (props.Count >= 1) { if (null != props[0].GetValue(data)) { newNode.Text = props[0].GetValue(data).ToString(); } } } Nodes.Add(rvnode); if (data.HasChildren) { IHierarchicalEnumerable newEnumerable = data.GetChildren(); if (newEnumerable != null) { RecurseDataBindInternal(newNode, newEnumerable, depth+1 ); } } if ( _maxDepth < depth) _maxDepth = depth; } } }

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からHierarchicalDataBoundControl.GetData メソッドを検索する場合は、下記のリンクをクリックしてください。

- HierarchicalDataBoundControl.GetData メソッドのページへのリンク