asp.net - 访问 gridview 列中的超链接

标签 asp.net vb.net gridview

我将此模板字段添加到 gridview 列中,并且需要从后面的代码中的列访问值(电子邮件地址)。我最初添加了一个 DataKeyNames,但这仅提取第一个记录值。在循环运行时似乎没有为每个记录选择值。

我想将电子邮件添加到标签中,以便我可以使用 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>

内联代码中不显示任何错误,仅报告: 解析器错误消息:服务器标记格式不正确。

更新:这是将 HyperLinkField 添加到列后的 ASP

<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>

这行代码从 James Johnson 提供的模板化字段解决方案中读取值...

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

如果此线程被解锁,他值得赞扬。

这是一个使用VB.net的ASP页面

感谢您的帮助。

最佳答案

使用HyperLinkField:

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

如果您遇到上述问题,您可以仅使用带有 HyperLink 控件的 TemplateField:

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

关于asp.net - 访问 gridview 列中的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284128/

相关文章:

c# - 从 gridview 插入到我的数据库中的值从第二列开始对于其余列都是相同的

asp.net - 使用 CompareValidator 控件将用户输入日期与今天的日期进行比较

asp.net - 在脚本中安装 ASP.NET + SQL Express

wpf - 我可以在WinForms中使用WPF控件来实现透明效果吗?

.net - 从图元文件到 JPEG/GIF 的 GDI+ 图像转换结果为黑色背景

asp.net - 在 rowcommand 事件上从 gridview CheckBoxField 获取值

jquery - "Inline"ASP.NET MVC 中的 CRUD

asp.net - 如何在 ASP.Net Web 窗体应用程序中从 Jquery 安全地调用用于内部目的的 Web 服务 (.asmx)?

wpf - 滚动内部列表框时,WPF 触摸屏应用程序中本应全屏显示的窗口正在移动

android - 如何在Grid Layout recyclerview中实现无限滚动