XmlDataSource 컨트롤에 바인딩 된 TreeView가 있습니다. TreeNodeBinding 요소를 추가하여 XML 데이터 표시 방법을 정의했습니다.PopulateOnDemand가 데이터 바인딩 ASP.Net TreeView에서 작동하지 않습니다.
또한이 TreeNodeBindings에 PopulateOnDemand = true를 추가했습니다. 그러나 그렇게하면 내용이 변경되지 않고 전체 XML 트리가 표시됩니다. 또한 노드 확장에서도 TreeNodePopulate 이벤트가 발생하지 않습니다.
중요 정보 :
가<%@ 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 파일 일 수있다 : 나는 ASP.NET 4
이 (매우 정직) 문제를 재현하는 예입니다 사용하고 있습니다 당신이 원한다면,별로 중요하지 않습니다.
TreeView1_TreeNodePopulate
메서드 내에 중단 점을 넣으려고했으나 결코 충돌하지 않았습니다.
나는 또한에 시도 :
- PopulateOnDemand = "true"를 각각 가능한 데이터 멤버에 대한 TreeNodeBinding을 설정합니다.
- 코드를 통해 모든 트리 노드를 통해 PopulateOnDemand 속성을
true
으로 설정합니다.
아무 것도 효과가 없습니다.
필요시 채워지는 유일한 방법은 데이터 소스에 노드를 바인딩하는 대신 노드에 노드를 수동으로 추가하는 경우입니다.
내가 뭘 잘못하고 있니? true로 설정된 PopulateOnDemand
속성 노드가 TreeView
제어에 확장 될 때
당신은 표시 할 수 있습니다 : 1) 마크 업 2) 당신은 내가 프로그래밍 트리 노드를 통과하고 그렇게해야 OnTreeNodePopulate 이벤트 핸들러 – JohnIdol