【问题标题】:Building dynamic links with Repeater control使用中继器控件构建动态链接
【发布时间】:2009-02-10 17:36:03
【问题描述】:

我正在使用Repeater 控件呈现数据。 假设数据源中有 2 个字段:productName 和 ProductID

在以下代码中:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%#Eval("productName")%> <br/>
<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl="~/Details.aspx?ID=">See Details</asp:HyperLink>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>

我需要修改什么

<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl="~/Details.aspx?ID=">See Details</asp:HyperLink>

在链接中包含从 ProductID 检索到的值 NavigateUrl="~/Details.aspx?ID="

【问题讨论】:

    标签: asp.net .net-2.0 repeater


    【解决方案1】:

    NavigateUrl="~/Details.aspx?ID=&lt;%# Eval("productID") %&gt;" 应该可以工作...

    ...但它没有!

    最优雅的方式应该是:

    <asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl='<%# Eval("ProductID", "~/Details.aspx?ID={0}") %>'>See Details</asp:HyperLink>
    

    【讨论】:

    • 我实际上做了什么,但它似乎没有用。将 NavigateUrl="~/Details.aspx?ID=" couse: 生成设计器文件失败:服务器标签格式不正确。当我将一组引号更改为单个引号时它创建链接 Details.aspx?ID=
    • 编辑:您是正确的,因为初始方法实际上并没有工作,但更新的方法确实......“表达式参数的值必须计算为公共属性。”来源:msdn.microsoft.com/en-us/library/4hx47hfe.aspx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多