2012-04-23 111 views
1

我將此模板字段添加到gridview列,並需要從後面的代碼中的列中訪問值(電子郵件地址)。我最初添加了一個DataKeyNames,但這隻會拉第一個記錄值。當通過循環運行時,似乎沒有選擇每個記錄的值。訪問gridview列中的超鏈接

我想將電子郵件添加到標籤,以便我可以使用FindControl語句,除非有人知道更簡單的方法。我無法將電子郵件超鏈接顯示在標籤中。沒有標籤標籤就可以正常工作,除非無法讀取電子郵件地址。

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate>  
     <a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a>  
    </ItemTemplate> 
</asp:TemplateField> 

試過的變化:

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate> 
     <asp:Label ID="Email99" runat="server" <a href="mailto:<%# Eval("email") %>"><%#Eval("email")%> </a> ></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

不中內嵌代碼顯示任何錯誤,只是報告: 分析器錯誤信息:服務器標記的格式不正確。

更新:這裏是ASP將HyperLinkField字段的列

<Columns>  
    <asp:BoundField DataField="usersLogonName" HeaderText="Logon Name" > 
     <ControlStyle Width="50px" /> 
    </asp:BoundField> 
    <asp:BoundField DataField="userDBLanguage" HeaderText="Language" > 
     <ControlStyle Width="30px" /> 
    </asp:BoundField> 

    <asp:HyperLinkField runat="server" DataNavigateUrlFields="email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="email" />  

    <asp:BoundField DataField="LastActivityDate" HeaderText="Last Activity" />                            
</Columns> 

的代碼該行讀取由詹姆斯 - 約翰遜提供的模板化解決方案領域的價值後...

Dim emailAdd As String = GridView4.DataKeys(dr.RowIndex)("Email") 

他值得如果此線程獲得解鎖,請相信。

這是一個使用VB.net的ASP頁面

感謝您的任何幫助。

+0

他們解鎖後爲我們。我認爲你現在可以接受。 – 2012-04-23 22:40:31

回答

3

使用HyperLinkField

<asp:GridView ID="GridView1" runat="server" ...> 
    <Columns> 
     <asp:HyperLinkField DataNavigateUrlFields="email" DataNavigateUrlFormatString="mailto:{0}" DataTextField="email" /> 
    </Columns> 
</asp:GridView> 

如果您遇到上述問題,您可以只使用一個TemplateFieldHyperLink控制它:

<asp:TemplateField HeaderText="Email"> 
    <ItemTemplate> 
     <asp:HyperLink runat="server" Text='<%# Eval("email") %>' NavigateUrl='<%# string.Format("mailto:{0}", Eval("email"))%>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

好吧,我固定那部分,但我的原始問題站立。在後面的代碼中,我需要在循環遍歷行時讀取超鏈接中的電子郵件地址。我怎樣才能獲得該電子郵件地址的價值? – htm11h 2012-04-23 19:18:16

+0

使用datakey集合,您可以通過行索引獲取電子郵件地址。給我一秒鐘,我會更新我的例子。 – 2012-04-23 19:20:12