2012-04-23 89 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