我有一个ashx处理程序,它返回一个xml响应(filestructurexml.ashx)。
现在我需要从ashx处理程序获取xml响应,并将其用作aspx页面的数据源。
如果我将xmldatasource指向服务器上的静态xml文件,则treeview将按预期填充。但是,如果我将xmldatasource指向ashx处理程序,而不是服务器上的静态xml文件,它就不会工作。
任何帮助都将不胜感激。
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView_Folders" runat="server" DataSourceID="FileXML">
<DataBindings>
<asp:TreeNodeBinding DataMember="Directory" TextField="Name" />
<asp:TreeNodeBinding DataMember="File" TextField="Name" />
</DataBindings>
</asp:TreeView>
</div>
<div>
<asp:XmlDataSource ID="FileXML" runat="server" DataFile="FileStructureXML.ashx">
</asp:XmlDataSource>
</div>
</form>
</body>
最佳答案
我认为xmldatasource只适用于实际的文件,而不是url。通过不指定datafile属性并在代码后面动态加载数据属性,您可以解决这个问题。我认为firstchild.outerxml选择是正确的,但是您可能需要进行实验。我不在一个可以测试的地方。
XmlDocument treeDoc = new XmlDocument();
treeDoc.Load( "~/FileStructureXML.ashx" ); // this takes a URL
FileXml.Data = treeDoc.FirstChild.OuterXml; // everything after the xml definition
关于asp.net - ASP.NET —如何用来自ASHX处理程序的XML数据响应填充TreeView控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/245418/