Мой вопрос довольно прост. Вот что я имею для страницы 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
в asp:HyperLink
после привязки данных к Repeater
? Я хочу сделать это в коде, я могу заставить его работать, если я сделаю это, используя <%# Eval("URL") %>
на странице aspx, но это как бы против того, что такое ASP.NET.
Редактировать: это решение, которое сработало для меня благодаря 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();
}
}