Ancla HTML con atributo de nombre en ASP.NET
Pregunta
Me gustaría anclar cada publicación en mi foro asp.net. La publicación de cada foro se procesa utilizando el control de repetidor. ¿Cómo puedo renderizar <a name="anchor_name"></a>
en asp.net?
Solución
<a name='<%# Eval("PostId") %>' />
donde PostId es el nombre de la propiedad que desea que aparezca en su ancla.
Otros consejos
Este no será el código exacto ya que no estoy en VS para asegurar la sintaxis, pero algo como esto debería darte el lugar donde quieres ir.
<a name="<%# Bind('PostId') %>" runat="server" />
Extienda la clase System.Web.UI.WebControls.HyperLink y anule la propiedad UniqueID para devolver el ID real:
override string UniqueID { get { return ID; } }
Use este nuevo control de usuario en la plantilla de elementos del repetidor.
<MyPrefix:MyHyperLink ID="IDOfYourHyperLink" ... />
En ItemDataBound hacer:
(e.Item.FindControl("IDOfYourHyperLink") as MyHyperlink).ID = NowIKnowWhatToUseHere;
Ok. Lo he resuelto de esta manera:
<a name='<%# DataBinder.Eval(Container.DataItem, "Id") %>' />
donde Id es propiedad de la entidad vinculada.
Agregar <a name="anchor_name"></a>
en el ItemTempate del repetidor en el lugar apropiado debería hacer el truco. Un poco más de información podría ayudar.