c#
  • target
  • linkbutton
  • 2012-02-13 215 views 14 likes 
    14

    es posible tener un target="_blank" en LinkButton ... la mía tampoco parece estar funcionandoC# target = "_ blank" en un LinkButton

    <asp:LinkButton runat="server" ID="g31" Text="PDF" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"productID") %>' CommandName='<%# DataBinder.Eval(Container.DataItem,"documentID") %>' OnCommand="linkbutton_showpdf" target="_blank"></asp:LinkButton> 
    

    O tendría que utilizar un formato diferente botón?

    +0

    ¿Qué quieres hacer? – ShankarSangoli

    +0

    Tengo un Response.Redirect en mi código detrás ... Estoy tratando de abrirlo en otra ventana. – user979331

    +2

    Me puede estar perdiendo, pero no veo ningún signo de 'target = "_ blank" '. –

    Respuesta

    -3

    Sólo rinden un ancla con juego href a url adecuado y establecer el atributo target a _blank abrirá la url en una nueva ventana.

    <a href="urlOfThePage" target="_blank" >Click me</a> 
    
    +1

    Esto también funcionó – user979331

    +1

    Esto no es correcto para asp.net. Ver mi respuesta a continuación. –

    7

    Puede usar el control de hipervínculo, que tiene una propiedad target='_blank'. Sin embargo, si debe utilizar un control LinkButton, a continuación, se puede añadir un atributo OnClientClick que luego se llama a una función JavaScript para abrir una ventana emergente

    window.open(); 
    
    +0

    Eso funcionó demasiado :) – user979331

    28

    Se puede utilizar como este con Botón de vínculo

    Reemplazar target="_blank"-OnClientClick="window.document.forms[0].target='_blank';".

    +0

    Cometí un error ... es 'w' y no' W'. Gracias. Está funcionando ahora – SearchForKnowledge

    +2

    Esto hará que cada enlace dentro de ese formulario "target = _blank" después de que se haga clic en el botón – deebs

    +0

    , debe agregar 'setTimeout (function() {window.document.forms [0] .target = '';} , 0); ' – Nina

    4

    Estaba trabajando con la respuesta de Devsaninii donde cambié el objetivo del formulario y encontré que el comportamiento no deseado del resto de mis páginas cambiaba a una nueva ventana después de hacer clic en un enlace que cambiaba el objetivo. Lo cual tenía sentido pero era indeseable.

    Estaba abriendo archivos con algunos enlaces y cargando páginas nuevas con otros. Quería que los archivos se abrieran en ventanas nuevas y quería que las páginas nuevas se abrieran en la misma ventana. Pero después de cambiar el objetivo, todo estaba en una nueva ventana. Podría haber pasado y agregado un manejador de clics de cliente a todos y cada uno linkbutton, pero eso era demasiado engorroso.

    Así que aquí es lo que ocurrió:

    añadí una clase a mi linkbuttons que se supone que tiene una nueva ventana cuando el objetivo y luego añadí este pequeño pedazo de jQuery para mi guión:

    $(function() { 
        $('a').click(function() { 
         if ($(this).hasClass('changeTarget')) { 
          window.document.forms[0].target = '_blank'; 
         } else { 
          window.document.forms[0].target = '_self'; 
         } 
        }); 
    }); 
    

    Ahora cuando se presiona linkbutton que debería tener una nueva ventana, se abre en una nueva ventana, y cuando se presiona cualquier otra cosa, se abre en la misma ventana.

    11

    Ninguna de las respuestas actuales es correcta, incluso la etiqueta <a> no es la respuesta correcta en asp.net.

    Utilice el botón HyperLink. Incluso hay una propiedad para el atributo de destino.

    <asp:HyperLink runat="server" NavigateUrl='http://rrs.com/aspx/Equipment/EquipmentType.aspx' Target="_blank">Create/Edit Part Types </asp:HyperLink> 
    
    +0

    100% la mejor respuesta – deebs

    -1

    Después de mirar estas respuestas y ninguno era exactamente lo que quería (hacer esto con una mirada botón), terminé usando un control de hipervínculo, sino que se utiliza el mismo estilo CSS como mis botones regulares:

    .button { 
    
        background-color:#011745; 
        color:white; 
        padding:7px 12px 7px 12px; 
        margin:3px; 
        border-style:none; 
        font-size:12px; 
    
    } 
    
    .button:hover { 
    
        background-color:#336699; 
        color:white; 
        padding:7px 12px 7px 12px; 
        margin:3px; 
        border-style:none; 
        font-size:12px; 
    
    } 
    

    ¡Se parecía a ellos! Si va por un botón que abre un enlace en una nueva ventana, que era, era casi perfecto. En un conjunto de celdas de tabla, se mostraba solo un toque más abajo que los botones normales, así que lo diseñé así: "posición: relativa; superior: -2px;" y eso hizo el truco.También tuve que forzar el blanco del forecolor:

    <asp:HyperLink ID="btnSummaryReport" Target="_blank" runat="server" Text="SUMMARY REPORT" CssClass="button" ForeColor="white" Font-Size="8" style="position:relative; top:-2px" /> 
    
    -1

    Agregando a @Devsainii respuesta arriba.

    Agregue el atributo OnClientClick="window.document.forms[0].target='_blank';" a su LinkButton y luego en el código detrás, simplemente use Response.Redirect("~/AnotherPage.aspx") para navegar a otra página.

    Cuestiones relacionadas