2010-12-01 10 views
0

Ich versuche, ein DataGrid mit einer HyperLinkColumn zu erstellen, die zwei Felder für die URL verwendet.
Ich bin mit Vb, VS 2005, .net 2Wie Sie mehrere Felder für HyperLinkColumn in einem DataGrid mithilfe von DataNavigateUrlField festlegen

ich diese Ausnahme bin immer:
„Ein Feld oder eine Eigenschaft mit dem Namen‚primKey, IsCommercial‘gefunden wurde, nicht auf der Datenquelle ausgewählt.“

Ich bin mir nicht sicher, warum, habe ich Folgendes überprüfen.

  • Die Felder sind alle korrekt geschrieben.
  • Die Felder befinden sich in der Datenquelle.
  • Die Felder arbeiten alle als einfache gebundene Spalten.

Hier ist ein Beispiel für das, was ich versuche zu tun.

<asp:HyperLinkColumn SortExpression="LogNo" DataNavigateUrlField="PrimKey, IsCommercial" DataNavigateUrlFormatString="../Clarifications.aspx?PrimKey={0}&IsCommercial={1}" DataTextField="LogNo" HeaderText="LogNo" ItemStyle-Wrap="false"></asp:HyperLinkColumn> 

Antwort

1

Ich glaube nicht, das DataNavigateUrlField mehrere Felder unterstützt, aber man konnte leicht Ihre Datagrid in Gridview konvertieren deren Hyperlink unterstützt DataNavigateUrlFields

Alternativ, wenn Sie noch Datagrid verwenden möchten Sie müssten manuell die bauen NavigateUrl gerne so:

UPDATE:

ich mehr den vorherigen Vorschlag getestet haben sollten gründlich vor der Buchung .. Ja, es war beabsichtigt, in einer TemplateColumn zu sein:

<asp:TemplateColumn SortExpression="LogNo" HeaderText="LogNo"> 
    <ItemTemplate> 
     <asp:HyperLink runat="server" NavigateUrl='<%# "../Clarifications.aspx?PrimKey=" & Container.DataItem("PrimKey") & "&IsCommercial=" & Container.DataItem("IsCommercial") %>'><%# Container.DataItem("LogNo")%></asp:HyperLink> 
    </ItemTemplate>        
</asp:TemplateColumn> 
+0

Ich bin ein Vermächtnis app unterstützt, wo auf ein Gridview in diesem Fall ist keine Option zu ändern. –

+0

Ich habe Ihre Alternative versucht, aber es erzeugt diese Ausnahme. Datenbindungsausdrücke werden nur für Objekte unterstützt, die über ein DataBinding-Ereignis verfügen. System.Web.UI.WebControls.HyperLinkColumn hat kein DataBinding-Ereignis. –

+0

Ja, ich sehe - danke fürs Testen –

2

Ich endete mit einer TemplateColumn Lösung.
Beispiel:

<asp:TemplateColumn HeaderText="LogNo" SortExpression="LogNo"> 
    <ItemTemplate> 
     <a href="../Clarifications.aspx?PrimKey=<%# Container.DataItem("PrimKey").ToString() & "&IsCommercial=" & Container.DataItem("IsCommercial") %>"><%#Eval("LogNo")%></a> 
    </ItemTemplate> 
</asp:TemplateColumn> 
Verwandte Themen