2010-12-01 64 views
0

我想創建一個DataGrid並使用兩個字段作爲URL的HyperLinkColumn。
我用VB,VS 2005,.NET 2如何使用DataNavigateUrlField在DataGrid中爲HyperLinkColumn設置多個字段

我得到這個異常:
「字段或屬性名稱爲‘PrimKey,IsCommercial’未選擇的數據源上找到。」

我不知道爲什麼,我檢查以下內容。

  • 這些字段拼寫正確。
  • 這些字段在數據源中。
  • 這些字段都作爲簡單的綁定列工作。

這是我正在嘗試做的一個例子。

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

回答

1

我不認爲DataNavigateUrlField支持多個領域,但你可以輕鬆地轉換成數據網格GridView中,其HyperLinkField字段支持DataNavigateUrlFields

另外,如果你仍然想使用DataGrid的你需要手動構建NavigateUrl像這樣:

UPDATE:

我應該更徹底的測試之前的建議發佈前..是的,它的目的是一個TemplateColumn中內:

<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

我支持遺留應用,在那裏改變到GridView不是在這種情況下的一個選項。 – 2010-12-01 03:47:35

2

我結束了一個TemplateColumn中解決這個。
實施例:

<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> 
相關問題