2012年11月29日 星期四

資料繫結控制項(Hierarchical)

The HierarchicalDataBoundControl control serves as a base class for controls that render data in a hierarchical fashion. The classes that inherit from HierarchicalDataBoundControl are TreeView and Menu Control.

TreeView

TreeView 控制項的功用

  • TreeView Control is used to display hierarchical data
  • The nodes of this control can be bound to XML, tabular, or relational data.
  • nodes can be displayed as either plaintext or hyperlinks
  • you can optionally display a check box next to each node.
  • you can display a tree hierarchy without being forced to have a single root node.
  • The TreeNode has a Text property that is populated with the data that is to be displayed.
  • The TreeNode also has a Value property that is used to store the data that is posted back to the Web server.
  • You can set a node to be a navigation node by setting the NavigateUrl property.

TreeView 控制項的組成元素

Populating the TreeView Control

要建構 TreeView 資料,有二種方式:(1)使用靜態資料 (2)透過資料繫結。

Populating the TreeView control with static data

使用靜態資料,只要在 <Nodes> 標籤中加入 <asp:TreeNode> 項目即可。

<asp:TreeView ID="TreeView2" runat="server" ShowLines="True" >
    <Nodes>
        <asp:TreeNode Text="1" Value="1">
            <asp:TreeNode Text="1.1" Value="1.1">
                <asp:TreeNode Text="1.1.1" Value="1.1.1"></asp:TreeNode>
                <asp:TreeNode Text="1.1.2" Value="1.1.2"></asp:TreeNode>
            </asp:TreeNode>
            <asp:TreeNode Text="1.2" Value="1.2">
                <asp:TreeNode Text="1.2.1" Value="1.2.1"></asp:TreeNode>
                <asp:TreeNode Text="1.2.2" Value="1.2.2">
                    <asp:TreeNode Text="1.2.2.1" Value="1.2.2.1"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="1.2.3" Value="1.2.3"></asp:TreeNode>
            </asp:TreeNode>
        </asp:TreeNode>
    </Nodes>
</asp:TreeView>

Populating the TreeView control with data binding

TreeView 控制項是由 HierarchicalDataBoundControl 控制項繼承而來,所以要透過資料繫結的方式來建構 TreeView 的話,則必須使用有實作 IHierarchicalDataSource 介面的資料來源。 例如 XmlDataSourceSiteMapDataSource 控制項,它與一般資料來源的差別就在於其資料結構是階層式的,而不是表格式(tabular)或清單式(list-style)。

TreeNodeBinding 屬性:

  • DataMember :設定資料來源的資料項目名稱,以決定是否要繫結到 TreeNode
  • TextField :設定資料來源的欄位,以繫結到 TreeNodeText 欄位
  • ValueField :設定資料來源的欄位,以繫結到 TreeNodeValue 欄位
  • Text :設定資料來源的欄位,以套用到節點的顯示文字。若和 TextField 同時設定,會以 TextField 的設定為主。
  • Value :設定資料來源的欄位,以套用到節點的值,該資訊不會顯示出來,但可由 postback 後取得。
範例請參考這裡

Menu

沒有留言:

張貼留言