<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。在网址前面加上 ~/以将其识别为相对于基本网址的路由。