我有一个绑定到网格视图的xml数据源。数据在网格视图中很好地表示但是其中一列包含我想要导航到的URL列表。我尝试过使用模板字段&gt;项目模板&gt; <asp:hyperlink>
(即navigateurl=<%bind ("links")%>
)但这会产生错误,因为它不会导航到xml文件中的url,而是通过本地主机(xml文件位置)进行路由。
我还尝试通过标签绑定列,但只是将url列表绑定为纯文本而不是可点击链接。
我想我需要将标签转换为url格式或以某种方式更改超链接数据源的路由。任何帮助将不胜感激。
以下是代码:
<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="false" AllowSorting="true">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="lblid" runat="server" Text='<%#Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Site Name">
<ItemTemplate>
<asp:Label ID="lblSiteName" runat="server" Text='<%#Bind("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Management Link">
<ItemTemplate>
<asp:HyperLink ID="hlManagement" Target="_blank" runat="server" Text="Click" NavigateUrl='<%# Bind("Link", "{0}") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
以及我如何在后面的代码中进行数据绑定:
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("~/XML Docs/Sites.xml"));
gv1.DataSource = ds;
gv1.DataBind();
这是xml片段:
<SiteLink>
<id> 1 </id>
<Name> Google </Name>
<Link> http://www.google.com </Link>
</SiteLink>
错误是:HTTP错误404.0 - 未找到。路由是:http://localhost:6482/ http:/www.google.com
,这是我认为出现错误的地方
答案 0 :(得分:0)
我创建了一个Gridview并使用相同的xml文件创建了一个数据绑定。我用你的Hyperlink控件改变了一些东西,它运行得很好。它没有在网址前附加http://localhost。
请告诉我这是否对您有用,如果没有,我会告诉您我的测试示例有效。
<asp:HyperLink ID="hlManagement" Target="_blank" runat="server" Text="Click" NavigateUrl='<%# Bind("Link","{0}") %>'></asp:HyperLink>
答案 1 :(得分:0)
感谢所有帮助,问题解决了; xml文件中的空格引起了问题...谈论无法看到树木的木材!