2010-08-19 151 views
1

問題,我知道,你可以用感嘆號綁定簡單類型的數組(如字符串)的GridView這樣將GridView綁定到字符串數組。與HyperLinkField字段

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField HeaderText="Array Field" DataField="!" /> 
    </Columns>  
</asp:GridView> 

但是這似乎並不符合DataNavigateUrlFields情況

<asp:HyperLinkField DataNavigateUrlFields="!" DataNavigateUrlFormatString="RoleInformation.aspx?role={0}" Text="Manage users" /> 

,我得到以下錯誤:

A field or property with the name '!' was not found on the selected data source.

回答

2

大多數人可能還沒有認識到使用! FIEL我懷疑。當我讀到你的問題時,它實際上讓我想起了我曾經閱讀但從未實際使用過的那個功能。考慮到這一點,我不認爲有這種類型的領域的方式,因爲它可能被遺忘在HyperLinkField實現(只是一個猜測)。你可能只是做一個快速的轉換到指定的屬性,然後你沒有任何問題:

例子:

<asp:GridView ID="grdTest" runat="server" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:BoundField HeaderText="Array Field" DataField="data" /> 
     <asp:HyperLinkField DataNavigateUrlFields="data" DataNavigateUrlFormatString="RoleInformation.aspx?role={0}" Text="Manage users" /> 
    </Columns>  
</asp:GridView> 

通知領域命名data。然後到你的數組綁定只是做:

string[] testArray = { "1", "2", "3" }; 
grdTest.DataSource = testArray.Select(a => new { data = a }); 
grdTest.DataBind(); 

它不會直接取代!但它是一個簡單的解決方案來解決結合簡單數組時!不落實,將永遠甚至工作,它可能需要針對每種字段類型。

+0

這幾乎是我現在所做的 – 2010-08-19 12:43:36

+0

@Sergej Andrejev我不認爲真的有另一種方式。如果你確實找到了一種讓''!'工作的方式留下評論,但我不認爲它已經實現。 – Kelsey 2010-08-19 15:16:40

相關問題