我试图通过asp:XmlDataSource使用XML_feed在asp:GridView中列出空缺。这 * 应该 * 有点简单,但是我的XPath表达式缺少一些东西。
这是一个简短的例子,我正在努力实现(职位空缺的列表标题):
<asp:XmlDataSource ID="XMLsource" DataFile="http://demo.easycruit.com/export/xml/vacancy/list.xml" XPath="VacancyList/Vacancy" runat="server"/>
<asp:GridView DataSourceID="XMLsource" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>Title</HeaderTemplate>
<ItemTemplate><%# XPath( "Version/Title" ) %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
两个控制器都有DataBind()代码隐藏。所以,如果有人知道为什么这个不工作...:)
1条答案
按热度按时间owfi6suc1#
如果您看一下XML(仅前几行):
将datagrid绑定到
<Vacancy>
元素列表-到目前为止一切正常。但在网格中,您引用:
<%# XPath( "Version/Title" ) %>
这是行不通的,因为
<Vacancy>
没有'/inside it - these elements are within a
'集合.....因此,您需要在ItemTemplate中引用的内容是:
应该可以
更新日期:
ASP.NET2.0XmlDataSource似乎还有一个问题,即不能处理默认的XML命名空间:-(
这就是XML中的这一行:
请在此查看此博客文章的主题:http://jasonf-blog.blogspot.com/2006/08/xmldatasource-xpath-workaround-for.html
你可以做两件事来解决这个问题:
**更新2:**剥离XML名称空间的方法似乎工作得很好- Bill埃夫扬提出了这种方法here。
如果您将帖子中的XSLT文件保存到网站项目中名为“StripNamespaces.xslt”的文件中,那么如果您将asp:XmlDataSource更改为以下内容,则应该可以获得数据:
注意新的“TransformFile”设置--它必须引用XSLT文件。有了这个设置,我现在可以在GridView中显示数据了。
马克