加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET – 如何使用来自ASHX处理程序的XML数据响应填充TreeView

发布时间:2020-12-16 09:44:16 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASHX处理程序,它返回一个 XML响应(FileStructureXML.ashx). 现在我需要从ASHX处理程序获取XML响应并将其用作我的ASPX页面的数据源. 如果我将XMLDataSource指向服务器上的静态XML文件,则树视图将按预期填充.但是,如果我将XMLDataSource指向ASHX处理程
我有一个ASHX处理程序,它返回一个 XML响应(FileStructureXML.ashx).

现在我需要从ASHX处理程序获取XML响应并将其用作我的ASPX页面的数据源.

如果我将XMLDataSource指向服务器上的静态XML文件,则树视图将按预期填充.但是,如果我将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属性并在后面的代码中动态加载Data属性来解决此问题.我认为FirstChild.OuterXml选择是正确的,但您可能需要进行实验.我不在我可以测试它的地方.

XmlDocument treeDoc = new XmlDocument();
treeDoc.Load( "~/FileStructureXML.ashx" ); // this takes a URL
FileXml.Data = treeDoc.FirstChild.OuterXml; // everything after the xml definition

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读