2014-05-09 31 views
0

我想在我的中继器上显示电子邮件链接(如果用户已选择显示他/她的电子邮件地址),但我所得到的是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%>

我检查过,每一行都有一个电子邮件地址,所以我真的不明白为什么会发生这种情况。

任何人都可以帮助我解决它吗?

在此先感谢!

回答

0

尝试从这个改变你的mailto超链接:

<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的数据绑定脚本(<%#%>)允许串联字符串。您还需要为HyperLink服务器控件运行Text值。

+0

那么我添加了user256103建议的缺失支架,并没有帮助...所以我复制这个和它的排序,谢谢! – Ortund

+0

不客气。希望它有帮助。 –

相关问题