2008-10-22 2 views
0

Я хотел бы сделать привязку к каждому сообщению в моем форуме asp.net. Сообщение каждого форума отображается с помощью ретранслятора. Как я могу сделать <a name="anchor_name"></a> в asp.net?HTML-якорь с атрибутом name в ASP.NET

ответ

6
<a name='<%# Eval("PostId") %>' /> 

где PostId - это название свойства, которое вы хотите отобразить в своем якоре.

+0

Этот PostId известен только в методе сообщений PostsRepeater_ItemDataBound, и как мне его использовать? – rafek 2008-10-22 18:05:41

-1

Добавление <a name="anchor_name"></a> в ItemTempate ретранслятора в соответствующем месте должно делать трюк. Немного больше информации может помочь.

+0

Ну, конечно, вы собираетесь поместить идентификатор в атрибут name! Я не понимаю, почему я получаю -1. Нам не дали никакой информации. – mspmsp 2008-10-22 20:15:43

1

Это не будет точный код, поскольку я не в VS, чтобы обеспечить синтаксис, но что-то вроде этого должно получить вас, если вы хотите идти.

<a name="<%# Bind('PostId') %>" runat="server" /> 
+0

Здесь вам не требуется двусторонняя привязка. Eval достаточно. – 2008-10-22 17:59:07

+0

Я думал об этом после того, как отправил. Вам также не нужно использовать runat, но я стараюсь использовать их при тестировании, а затем удалять то, что ему не нужно. – 2008-10-22 18:28:45

0

Продлить класс System.Web.UI.WebControls.HyperLink и переопределить UniqueID свойство возвращать фактическое ID:

override string UniqueID { get { return ID; } } 

Используйте этот новый пользовательский элемент управления в шаблоне элемента повторителя.

На ItemDataBound сделать:

(e.Item.FindControl("IDOfYourHyperLink") as MyHyperlink).ID = NowIKnowWhatToUseHere; 
0

Ok. Я решил это так:

<a name='<%# DataBinder.Eval(Container.DataItem, "Id") %>' /> 

где Id - свойство связанного объекта.

Смежные вопросы