我的问题很简单。这是我为 aspx 页面所拥有的:
<ul>
<asp:Repeater runat="server" ID="linksList" OnItemDataBound="linksList_OnItemDataBound" >
<ItemTemplate>
<li><asp:HyperLink runat="server" ID="link" /></li>
</ItemTemplate>
</asp:Repeater>
</ul>
我正在尝试从 SQL 服务器获取超链接列表到列表中。这就是我在代码隐藏中的内容:
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = Utilities.RunSelectQuery("SELECT *");
DataTable dt = ds.Tables[0];
linksList.DataSource = dt;
linksList.DataBind();
}
如何更改数据绑定后的NavigateUrl
和Text
属性?我想在代码隐藏中做到这一点,如果我在 aspx 页面中使用它,我可以让它工作,但这有点违背 ASP.NET 的全部意义。asp:HyperLink
Repeater
<%# Eval("URL") %>
编辑:感谢 womp,这是对我有用的解决方案:
protected void linksList_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView row = (DataRowView)e.Item.DataItem;
HyperLink link = (HyperLink)e.Item.FindControl("link");
link.Text = row["description"].ToString();
link.NavigateUrl = row["URL"].ToString();
}
}