我有一個綁定到XmlDataSource控件的TreeView。我添加了一些TreeNodeBinding元素來定義我希望如何顯示XML數據。PopulateOnDemand不適用於數據綁定ASP.Net TreeView
我也爲這些TreeNodeBindings添加了PopulateOnDemand = true。但是,這樣做不會改變事物,並且顯示整個XML樹。此外,TreeNodePopulate事件也不會在節點擴展上觸發。
重要信息:我使用ASP.NET 4
這能重現問題(很簡單的)例子:
<%@ Page Language="C#" AutoEventWireup="true" %>
<script type="text/C#" runat="server">
protected void TreeView1_TreeNodePopulate(Object sender, TreeNodeEventArgs e)
{
// This method is never called...
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" OnTreeNodePopulate="TreeView1_TreeNodePopulate" ExpandDepth="0">
<DataBindings>
<asp:TreeNodeBinding DataMember="#" TextField="#" ValueField="#" PopulateOnDemand="true" />
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="Sample.xml" />
</div>
</form>
</body>
</html>
sample.xml的可以是任何XML文件你想,這並不重要。
我試圖在TreeView1_TreeNodePopulate
方法中放置一個斷點,並且它從未被擊中。
我也試圖:
- 設置一個的TreeNodeBinding用於與PopulateOnDemand = 「真」 的每個可能的數據成員。
- 通過代碼,遍歷所有樹節點並將其PopulateOnDemand屬性設置爲
true
。
沒有工作。
按需填充的東西的唯一工作方式是當我手動添加節點到節點而不是綁定到數據源。
我在做什麼錯?
可以顯示:1)標記2)的後面,如果你執行OnTreeNodePopulate事件處理 – JohnIdol 2010-03-05 00:17:48