2010-04-14 101 views
15

En mi aplicación tengo algunos botones de enlace allí, pero cuando hago clic derecho sobre ellos no puedo (están en modo de deshabilitar) buscar los elementos de menú Open in new tab o Open in new window.propiedad del botón de enlace para abrir en una nueva pestaña?

¿Cómo se muestran esos elementos del menú?

ejemplo Código:

<asp:LinkButton id="lbnkVidTtile1" runat="Server" CssClass="bodytext" Text='<%#Eval("newvideotitle") %>' /> 

Respuesta

18

arriba del docs:

Use the LinkButton control to create a hyperlink-style button on the Web page. The LinkButton control has the same appearance as a HyperLink control, but has the same functionality as a Button control. If you want to link to another Web page when the control is clicked, consider using the HyperLink control.

Como esto no es en realidad la realización de un enlace en el sentido normal, no hay Target propiedad en el control (el HyperLink control tiene un Target) - está intentando realizar un Postback al servidor desde un enlace de texto.

Dependiendo de lo que está tratando de hacer que bien podría:

  1. utilizar un control HyperLink, y establezca la propiedad Target
  2. proporcionar un método para la OnClientClick property que se abre una nueva ventana en el lugar correcto .
  3. En su código que maneja el PostBack agregue JavaScript para iniciar en PageLoad que abrirá una nueva ventana en el lugar correcto.
+0

puedo obtenerlo en el botón de enlace porque estoy pasando algunos valores usando commandargument, no está en hipervinculación, incluso el evento de clic tampoco está allí para el hipervínculo. Sr. Zhaph- Ben –

0

Cuando la propiedad LinkButton Activado es falso que sólo rinde un hipervínculo estándar. Cuando haces clic con el botón derecho en cualquier hipervínculo desactivado, no tienes la opción de abrir nada.

tratar

lbnkVidTtile1.Enabled = true; 

Lo siento si no he entendido bien. ¿Podría asegurarme de que entiendes el propósito de un LinkButton? Es para dar la apariencia de un HyperLink pero el comportamiento de un Botón. Esto significa que tendrá una etiqueta de anclaje, pero hay un cableado de JavaScript que realiza un Retroceso a la página. Si desea vincular a otra página, se recomienda here que utilice un control HyperLink estándar.

+0

Sr. Daniel Dyson el código que le dio lbnkVidTtile1.Enabled = true; es el lugar en el botón de enlace haga clic en evento? –

+0

Evento PageLoad en el código detrás. No debería tener que hacer esto porque el valor predeterminado es verdadero. ¿Puedes explicar cómo se han deshabilitado los botones de enlace? –

+0

Sr. Daniel Dyson no entiende mi pregunta, creo. cuando abrimos cualquier sitio y puede haber un botón de enlace cuando hacemos clic derecho sobre él y seleccionamos la 'pestaña nueva de abrir el enlace' que necesito en mi botón de enlace. Presente mis botones de enlace no están obteniendo ese (abrir nueva pestaña Enlace) –

-4
<asp:LinkButton ID="LinkButton1" runat="server" target="_blank">LinkButton</asp:LinkButton> 

Use target = "_ blank" porque Crea el marcado de anclaje. el siguiente código HTML se genera para el código

<a id="ctl00_ContentPlaceHolder1_LinkButton1" target="_blank" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton1','')">LinkButton</a> 
+2

Hmm, Eso representa la marca como usted dice, pero abre una ventana en blanco, y no realiza el Postback, tan poco ideal;) –

+1

Lo hizo no funciona para mi como estoy usando el botón de enlace en Grd view –

1
  1. LinkButton ejecuta la operación HTTP POST, no puede cambiar de destino post aquí.
  2. No todos los navegadores admiten enviar el formulario a una nueva ventana de destino.
  3. Para que se publique, debe cambiar el destino de su "FORMA".
  4. Puede usar alguna solución javascript para cambiar su objetivo POST, cambiando el atributo de destino del formulario, pero el navegador le dará una advertencia al usuario (IE lo hace), que esta página está tratando de publicar datos en una nueva ventana, ¿quiere? para continuar, etc.

Trate de encontrar el ID de su elemento de formulario en el aspx generado, y puede cambiar el destino como ...

getElementByID('theForm').target = '_blank' or 'myNewWindow' 
3

Esto no es perfecto, pero funciona.

<asp:LinkButton id="lbnkVidTtile1" runat="Server" 
    CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' 
    OnClientClick="return PostToNewWindow();" /> 

<script type="text/javascript"> 
function PostToNewWindow() 
{ 
    originalTarget = document.forms[0].target; 
    document.forms[0].target='_blank'; 
    window.setTimeout("document.forms[0].target=originalTarget;",300); 
    return true; 
} 
</script> 
+0

Prefiero esta solución porque establece el tiempo de espera de este truco objetivo. Si no se establece el tiempo de espera, cada enlace hecho clic después de este punto se abrirá en una nueva ventana. – kerbasaurus

14

try por Agregar siguiente eventoClienteClick.

OnClientClick="aspnetForm.target ='_blank';"

así sucesivamente, haga clic en va a llamar a la función de Javascript y se abrirá el respectivo enlace en la pestaña Noticias.

<asp:LinkButton id="lbnkVidTtile1" OnClientClick="aspnetForm.target ='_blank';" runat="Server" CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' /> 
0

Se produce un error.

Microsoft JScript error de ejecución: 'aspnetForm' no está definido

11

Aquí está su etiqueta.

<asp:LinkButton ID="LinkButton1" runat="server">Open Test Page</asp:LinkButton> 

Aquí está su código en el código detrás.

LinkButton1.Attributes.Add("href","../Test.aspx") 
LinkButton1.Attributes.Add("target","_blank") 

Espero que esto sea útil para alguien.

Editar Para hacer lo mismo con un botón de enlace dentro de un campo de plantilla, utilice el siguiente código.

Utilice el evento GridView_RowDataBound para encontrar el botón Enlace.

Dim LB as LinkButton = e.Row.FindControl("LinkButton1")   
LB.Attributes.Add("href","../Test.aspx") 
LB.Attributes.Add("target","_blank") 
+0

Me gustaría usarlo en asp: TemplateField en GridView. – Kiquenet

+0

Sí, eso se puede hacer. Agregue LinkButton1 en su campo de plantilla. Utilice el evento GridView_RowDataBound para encontrar el botón Enlace: Dim LB como LinkButton = e.Row.FindControl ("LinkButton1") y LB.Attributes.Add ("href", "../ Test.aspx") y LB.Attributes.Add ("objetivo", "_ en blanco"). –

+0

Haga este comentario como su respuesta en su lugar. – Jamil

Cuestiones relacionadas