这是我第一次使用asp.net,如果这是一个愚蠢的问题,请接受我的道歉。
我正在尝试创建一个可以在我们的工作共享点上运行的Web应用程序。这个想法是一个团队,人们可以选择何时可以打电话,如果他们是当天的联络点,那么不同楼层的人可以在没有视线的情况下看到他们的可用性。
我通常会制作一个基本的PHP脚本,但sharepoint不喜欢php,我们无法引用网络上的外部资源。
我遇到的问题是应该从xml中提取数据的表只是一个空白页...最初它给出了一个错误,说它找不到数据字段,我意识到我需要使用xpath来更具体...它现在不会给出任何错误,比如找到该字段但没有绘制它。代码如下:
XML database:
<?xml version="1.0" encoding="utf-8" ?>
<CRM>
<agent>
<id>user1</id>
<name>name</name>
<turret>extension</turret>
<email>email</email>
<status>XXXXX</status>
<contact>N/A</contact>
</agent>
<agent>
<id>user2</id>
<name>Name 2</name>
<turret>extension</turret>
<email>email</email>
<status>XXXXX</status>
<contact>N/A</contact>
</agent>
<agent>
<id>user3</id>
<name>Name 3</name>
<turret>Extension Number</turret>
<email>email address</email>
<status>XXXXX</status>
<contact>N/A</contact>
</agent>
</CRM>
和应该提取数据的数据网格在这里:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="CSTvisibility.aspx.vb" Inherits="CRM_availabilty.CSTvisibility" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:XmlDataSource ID="data" runat="server" DataFile="~/crmdata.xml" XPath="/agent"></asp:XmlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderStyle="Ridge" DataSourceID="data">
<Columns>
<asp:BoundField DataField="name" HeaderText="CRM Agent" />
<asp:BoundField DataField="turret" HeaderText="Turret" />
<asp:BoundField DataField="email" HeaderText="Email" />
<asp:BoundField DataField="status" HeaderText="Available" />
<asp:BoundField DataField="contact" HeaderText="Contact Point" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
答案 0 :(得分:0)
切换到TemplateField
而不是BoundField
。然后您就可以访问XPath
。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataSourceID="data">
<Columns>
<asp:TemplateField HeaderText="CRM Agent">
<ItemTemplate>
<%# XPath("name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Turret">
<ItemTemplate>
<%# XPath("turret") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Email">
<ItemTemplate>
<a href="mailto:<%# XPath("email") %>"><%# XPath("email") %></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
XmlDataSource中的XPath必须为XPath="CRM/agent"