2009-08-03 6 views

Respuesta

22

Si agrega una id y un atributo runat="server" a su enlace ...

<a id="YourLink" runat="server" href="../WOPages/WO_Main.aspx?WONum=12345"> 
    WorkOrder 
</a> 

... entonces usted puede acceder a/cambiar mediante programación la propiedad HRef ...

YourLink.HRef = "http://stackoverflow.com/"; 
+1

Me falta algo básico aquí (soy novato) Intenté este código y recibo un error 'El nombre YourLink no existe en el contexto actual' en la parte YourLink de la declaración YourLink.HRef. – dsteele

+0

Acabo de descifrar esto: en los parámetros de página del archivo .aspx, el parámetro 'Codefile' apuntaba al nombre del archivo: 'LabEdit.aspx.cs'. Debería haber estado apuntando a la ruta: "~/WOPages/LabEdit.aspx.cs". Sé que no moví el archivo de código o el archivo de página, por lo que este es quizás un problema con VS2008. – dsteele

1

Se puede borrar todos los controles de la ContentPlaceHolder y luego agregar un nuevo control de hipervínculo como esto:

// Create your hyperlink control 
HyperLink lnk = new HyperLink(); 
lnk.NavigateUrl = "http://domain.com"; 
lnk.Text = "Click here"; 

ContentPlaceHolder3.Controls.Clear(); 
ContentPlaceHolder3.Controls.Add(lnk); 

o dar el hipervínculo un ID y actualizar el hipervínculo encontrando el control en el ContentPlaceHolder:

HyperLink lnk = ContentPlaceHolder3.FindControl("MyLink") as HyperLink; 
lnk.NavigateUrl = "http://domain.com/update/"; 
lnk.Text = "Click here too"; 
1

usted podría utilizar etiquetas o hacer que hacer esto:

<a href="<asp:literal id="hrefString" runat="server"></asp:literal>" 

y asignar el literal en código.

0

Como el enlace no es un control de servidor, el marcador de posición contiene un LiteralControl donde el texto es el código HTML. Puede obtener el código HTML y reemplazar el atributo href:

LiteralControl c = Content5.Controls[0] as LiteralControl; 
c.Text = Regex.Replace(c.Text, "(href=\")[^\"]+(\")", "$1http://www.guffa.com$2"); 

Si agrega runat="server" y un id al enlace de modo que se trata de un control de servidor, se hace mucho más simple, ya que sólo puede establecer que es HRef propiedad .

Cuestiones relacionadas