我有一个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/

10-09 16:45