创建唯一 URL 时超链接不起作用?C# asp.net


<asp:SqlDataSource ID="itemsforsale" runat="server"
     ConnectionString="<%$ ConnectionStrings:ElmtreeConnection  %>"
     SelectCommand="SELECT * FROM Products WHERE Products.CategoryId = @CategoryId">
     <SelectParameters>
         <asp:QueryStringParameter Name="CategoryId" 
              QueryStringField="CategoryId" Type="Int32" />
     </SelectParameters>
</asp:SqlDataSource>
<asp:HyperLink ID="hyperlink" runat="server" 
     NavigateUrl='<%# "ItemsForSale.aspx?CategoryId"+Eval("CategoryId") %>' 
     Text="Beauty"></asp:HyperLink>

这是我的标记。加载页面时我没有收到任何错误,但是链接不起作用。谁能给我一些关于为什么的见解?

URL 中缺少等号:

NavigateUrl='<%# "ItemsForSale.aspx?CategoryId=" + Eval("CategoryId") %>'

如果超链接不在数据绑定控件中,则必须在 Page_Load 中调用其 DataBind 方法(或 Page 本身的 DataBind 方法(,以确保计算其数据绑定表达式:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        hyperlink.DataBind();
        ...
    }
}

你实际上是在创建一个地址ItemsForSale.aspx的URL。在网址前面加上 ~/以将其识别为相对于基本网址的路由。

最新更新