2016-07-22 10 views
1

Mein Problem ist, dass ich nicht herausfinden kann, wie Links von einem XML-Blatt in eine GridView korrekt zu implementieren.GridView: HyperLinkField funktioniert nicht

Ich versuche, eine Tabelle zu verwenden, um eine Reihe von Informationen anzuzeigen, einschließlich Name, URL und Anmeldeinformationen. Dies wird in der folgenden XML-Tabelle gezeigt. Ich verwende momentan nur Dummy-Informationen für den Display-Test.

<?xml version="1.0" encoding="utf-8" ?> 

<Sites xmlns:xlink="http://www.w3.org/1999/xlink"> 
    <Set_Info> 
    <Name>Alpha</Name> 
    <URL >http://www.google.com</URL> 
    <UserName>Blah</UserName> 
    <Password>BlahBlah</Password> 
    </Set_Info> 
    <Set_Info> 
    <Name>Beta</Name> 
    <URL >http://www.google.com</URL> 
    <UserName>Blah</UserName> 
    <Password>BlahBlah</Password> 
    </Set_Info> 
    <Set_Info> 
    <Name>Gamma</Name> 
    <URL >http://www.google.com</URL> 
    <UserName>blah</UserName> 
    <Password>blahblah</Password> 
    </Set_Info> 
</Sites> 

ich ein gridview bin mit erklärter thusly in meiner ASPX-Datei:

<asp:GridView ID="GridView1" runat="server" HeaderStyle-ForeColor="#FF5A09" RowStyle-ForeColor="#FF9900" 
     AutoGenerateColumns="false" BorderWidth="2px" 
     Width="1294px" Height="267px" > 
<Columns > 
     <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" /> 
     <asp:BoundField DataField="URL" HeaderText="URL" ItemStyle-Width="400" /> 
     <asp:BoundField DataField="Username" HeaderText="Username" ItemStyle-Width="150" /> 
     <asp:BoundField DataField="Password" HeaderText="Password" ItemStyle-Width="150" /> 
    </Columns> 

</asp:GridView> 

Im Code hinter hatte ich verbindlich gewesen, die Daten wie folgt:

 Dim ds As New DataSet 
     ds.ReadXml(Server.MapPath("[path to my xml]")) 
     GridView1.DataSource = ds 
     GridView1.DataBind() 

Als ich wurde nur den Text für die URL angezeigt, die es funktionierte, aber wenn ich den Text als Link arbeiten möchte wie

<URL xlink:type="simple" xlink:href="http://www.google.com">http://www.google.com</URL> 

und die entsprechende Änderung

zu gridview Spalte machen
<asp:HyperLinkField DataField="URL" HeaderText="URL" ItemStyle-Width="400" /> 

Dann auf diese erscheint ich abstürzen, wenn ich die Seite auf der Website. Ich habe nach anderen Lösungen gesucht, kann aber keine finden. Jede Hilfe würde sehr geschätzt werden.

+0

Versuchen: GridView1.DataSource = ds.Tables (0) – jdweng

+0

@jdweng ich Angst habe, dass nicht – MacedonZero

+0

Könnten Sie das ursprüngliche XML halten funktioniert (' ...', ohne die 'xlink') und Verwenden Sie das HyperLinkField in der GridView? – ConnorsFan

Antwort

1

können Sie die Hyperlink auf diese Weise verwenden:

<asp:HyperLinkField DataNavigateUrlFields="URL" DataNavigateUrlFormatString="{0}" DataTextField="URL" HeaderText="URL" ItemStyle-Width="400" /> 

Es funktioniert ohne xlink Attribut in den XML-Daten.

+0

Danke, liebe Fremde – MacedonZero