为什么我不能在DataNavigateUrlFields中写“mailto:”?

时间:2013-08-22 08:31:33

标签: asp.net email

GridView中,我正在尝试使用HyperLinkField,我正在尝试将'mailto:'写入DataNavigateUrlFields参数,但它却无效:{{1} }。为什么呢?

2 个答案:

答案 0 :(得分:0)

MSDN论坛上有一段时间的讨论。这种解释的结果是使用BoundField而不是HyperLinkField

<强>更新

我在笔记中找到了它。工作代码如下:

<asp:BoundField DataField="Email" 
    DataFormatString="<a href=mailto:{0}>{0}</a>" 
    HtmlEncodeFormatString="false" 
    HeaderText="Email" SortExpression="Email" />

讨论在这里:How to create mailto: in gridview?

答案 1 :(得分:0)

使用HyperLinkField和mailto似乎存在问题。

参考文献:

建议的解决方法是改为使用BoundField:

<asp:BoundField DataField="SendTo" 
    DataFormatString="<a href=mailto:{0}>{0}</a>"   
    HtmlEncodeFormatString="false" HeaderText="Email" SortExpression="SendTo" />

或者,模板字段中的HyperLink控件:

<asp:TemplateField
HeaderText="E-mail"
SortExpression="Email">

<ItemTemplate>

<asp:HyperLink
ID="HyperLink1"
runat=server
Text='<%# Eval("Email") %>'
NavigateUrl='<%# Eval("Email", "mailto:{0}") %>'
/>

</ItemTemplate>
</asp:TemplateField>