我想在我的转发器上显示电子邮件链接(如果用户已选择显示他/她的电子邮件地址),但我得到的只是Databinder.Eval(Container.DataItem, "emailaddress")
写入实际链接。它没有被解析,因为它应该......
这是我的标记:
<asp:Repeater runat="server" ID="rptGuestbook" OnItemCommand="rptGuestbook_ItemCommand"
OnItemDataBound="rptGuestbook_ItemDataBound" DataSource="<%# guestbookData %>">
<ItemTemplate>
<div runat="server" id="divPost" class="post">
<div runat="server" id="divAuthor" class="author">
<asp:Panel runat="server" ID="pnlAdmin" CssClass="delete-button" Visible="false">
<asp:Button runat="server" ID="btnDeletePost" CssClass="button" Text="Delete Post"
CommandName="DeletePost" CommandArgument='<%# Eval("postid") %>' />
<asp:Label runat="server" ID="lblShowEmail" Text='<%# Eval("showemail") %>' CssClass="hidden"></asp:Label>
</asp:Panel>
<ul>
<li>#<%# Eval("postid") %></li>
<li><span>Posted By: </span>
<%# Eval("postauthor") %><br />
<li>
<asp:HyperLink runat="server" ID="lnkWeb" ImageUrl="~/Images/webicon.png" NavigateUrl='<%# Eval("webaddress") %>'></asp:HyperLink></li>
<li>
<asp:HyperLink runat="server" ID="lnkEmail" ImageUrl="~/Images/emailicon.png" NavigateUrl='mailto: <%# DataBinder.Eval(Container.DataItem, "emailaddress" %>'></asp:HyperLink></li>
</ul>
</div>
<div runat="server" id="divMessage" class="post-message">
<div class="post-date">
<span>Posted On:</span>
<%# Eval("postdate") %></div>
<%# Eval("postmessage") %></div>
<div class="scroll">
</div>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:HyperLink runat="server" ID="lnkEmail" ImageUrl="~/Images/emailicon.png" NavigateUrl='mailto: <%# DataBinder.Eval(Container.DataItem, "emailaddress" %>'></asp:HyperLink>
这正是我的浏览器认为链接是......
%20℃%%#20DataBinder.Eval(的Container.DataItem,%20 “EMAILADDRESS” %20%&GT;
我已经检查过,每一行都有一个电子邮件地址,所以我真的不明白为什么会这样。
有人可以帮我解决吗?
提前致谢!
答案 0 :(得分:0)
尝试将邮件更改为HyperLink:
<asp:HyperLink runat="server"
ID="lnkEmail"
ImageUrl="~/Images/emailicon.png"
NavigateUrl='mailto: <%# DataBinder.Eval(Container.DataItem, "emailaddress" %>'></asp:HyperLink>
到这个
<asp:HyperLink runat="server"
ID="lnkEmail"
ImageUrl="~/Images/emailicon.png"
NavigateUrl='<%# "mailto:" + Eval("emailaddress") %>'
Text='<%# Eval("emailaddress") %>'></asp:HyperLink>
如user256103所述,你在DataBinder.Eval中缺少一个结束语。我认为更大的问题是NavigateUrl的价值。 ASP.NET的数据绑定scriplet(&lt;%#%&gt;)允许连接字符串。您还需要一个Text值才能使HyperLink服务器控件正常工作。