2013-01-31 142 views
1

我在GridView中有2列FirstNameLastName。我希望FirstName列中的所有行都處於超鏈接狀態。我已經嘗試過,但沒有工作。我該怎麼做 ?GridView中的超鏈接列

分析器錯誤

Parser Error Message: Databinding expressions are only supported on objects 
that have a DataBinding event. System.Web.UI.WebControls.HyperLinkField does not 
have a DataBinding event. 

代碼:

<asp:GridView ID="CustomersGridView" runat="server" AutoGenerateColumns="False"> 
     <Columns> 

     <asp:BoundField DataField="FirstName" HeaderText="First Name" /> 
     <asp:BoundField DataField="LastName" HeaderText="Last Name" /> 

     <asp:HyperLinkField Text='<%# Eval("FirstName") %>' /> 

    </Columns> 
</asp:GridView> 

回答

1

你需要將其轉換爲模板字段:

<asp:GridView ID="CustomersGridView" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:BoundField DataField="FirstName" HeaderText="First Name" /> 
     <asp:BoundField DataField="LastName" HeaderText="Last Name" /> 
     <asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> 
     <asp:itemtemplate> 
      <asp:HyperLinkField Text='<%# Eval("FirstName") %>' /> 
    ... 
+0

我試圖像這樣的 但如何創建標題「First Name」? – TheChampp

+0

編輯我的答案,以便您可以看到如何放置標題文本。僅供參考 - 如果您使用VS,則可以探索gridview嚮導,數據源嚮導或智能感知,然後您將以這種方式瞭解有關您的選項的信息。 – Chains

3

嘗試使用這個..

<asp:HyperLinkField 
     DataTextField="FirstName" 
     HeaderText="First Name" 
     SortExpression="FirstName" 
     DataNavigateUrlFields="FirstNameID" 
     DataNavigateUrlFormatString="PersonDetails.aspx?FirstNameID={0}" /> //use if you want to nevigate to other page 
+0

我試過這個,但我不允許點擊任何字段作爲超鏈接。我的錯誤在哪裏? 我想要像「 ...」。 – TheChampp

+0

雖然我沒有試過,也許我不明白你想說什麼,但如果你想nevigate谷歌從你的鏈接,那麼你可以改變DataNavigateUrlFormatString爲www.google.com而不是PersonDetails.aspx – ridoy