ASP.net将数据项放入重复器

本文关键字:net 数据项 ASP | 更新日期: 2023-09-27 17:50:18

我有一个:

    数据转发器
  • 中继器控制

我想在控件中添加一些值。现在我有一个控件:

<asp:Repeater runat="server" ID="ArchiveEntryRepeater">
    snip
    <asp:HyperLink ID="HyperLink1" ToolTip="Comment on Some Entry Title Here" runat="server" NavigateUrl="~/Blog/7/How-to-know-when-this/Comments">
        <strong><%# DataBinder.Eval(Container.DataItem, "Comments")%></strong> Comments
    </asp:HyperLink>
    snip
</asp:Repeater> 

可以,但是我想把

<%# DataBinder.Eval(Container.DataItem, "Title")%>

放到超链接的NavigateURL属性中。只是把它放进去似乎不管用!

ASP.net将数据项放入重复器

尝试将您的NavigateURL用撇号而不是双引号括起来,以免混淆ASP。净解析器:

<asp:HyperLink runat="server" NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "Title")%>' [...]>[...]</asp:HyperLink>

始终可以在后端使用事件itemboundound进行绑定。它有一些优点,特别是当数据不是一个整洁的视图或需要某种类型的主要操作时。

另一种选择是松开该控件并用html锚控件代替它,如下所示:

 <asp:Repeater>
        <ItemTemplate>
            <a id="HyperLink1" title="Comment on Some Entry Title Here" href='<%# DataBinder.Eval(Container.DataItem, "Title")%>'
                style="font-weight: bold">'<%# DataBinder.Eval(Container.DataItem, "Comments")%>'</a>
        </ItemTemplate>
    </asp:Repeater>

一旦服务器呈现一个超链接到客户端,通常没有理由让它"runat='server'"。目的是导航到另一个页面,这样使用asp:HyperLink和nchor的开销就被浪费了。