C # Target = "_ blank" в LinkButton - PullRequest
       16

C # Target = "_ blank" в LinkButton

15 голосов
/ 13 февраля 2012

возможно ли иметь target="_blank" в 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>

Или мне придется использовать другой формат кнопки?

Ответы [ 8 ]

32 голосов
/ 09 октября 2012

Вы можете использовать это с кнопкой Link

Заменить target="_blank" на OnClientClick="window.document.forms[0].target='_blank';".

16 голосов
/ 05 декабря 2014

Ни один из текущих ответов не является правильным, даже тег <a> не является правильным ответом в asp.net.

Используйте кнопку HyperLink.Есть даже свойство для целевого атрибута.

<asp:HyperLink runat="server" NavigateUrl='http://rrs.com/aspx/Equipment/EquipmentType.aspx' Target="_blank">Create/Edit Part Types </asp:HyperLink>
7 голосов
/ 13 февраля 2012

Вы можете использовать элемент управления Hyperlink, который имеет свойство target='_blank'. Однако, если вам необходимо использовать элемент управления LinkButton, вы можете добавить атрибут OnClientClick, который затем вызывает функцию JavaScript, чтобы открыть всплывающее окно

window.open();
4 голосов
/ 18 сентября 2013

Я работал с ответом Девсанинии, где я изменил цель формы и обнаружил нежелательное поведение остальных моих страниц, переходящих в новое окно после нажатия на ссылку, которая изменила цель.Это имело смысл, но было нежелательно.

Я открывал файлы с одними ссылками и загружал новые страницы с другими.Я хотел, чтобы файлы открывались в новых окнах, и я хотел, чтобы новые страницы открывались в том же окне.Но после того, как я сменил цель, все было в новом окне.Я мог бы пройти и добавить обработчик кликов клиента к каждому linkbutton, но это было слишком громоздко.

Итак, вот что я придумал:

Я добавил класс к своему linkbuttons, который должен был иметь новое окно в качестве цели, а затем я добавил этот маленький кусочек jQuery.к моему сценарию:

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

Теперь, когда linkbutton, который должен иметь новое окно, нажимается, он открывается в новом окне, а когда что-либо еще нажимается, он открывается в том же окне.

0 голосов
/ 03 июня 2019

LinkButton в веб-формах ASP.NET просто отправляет базовую форму с использованием JavaScript, поэтому target = "_ blank" фактически ничего не делает.Чтобы открыть новое окно, вы можете вместо этого изменить целевое свойство «формы» через JavaScript, используя событие OnClientClick LinkButton.Вам также необходимо отменить изменение после щелчка (используя setTimeout), в противном случае дальнейшее нажатие кнопки будет непреднамеренно нацелено на новую вкладку.

<asp:LinkButton ID="uiNewTabExample" Text="Open New Tab" OnClick="uiNewTabExample_Click" OnClientClick="window.document.forms[0].target = '_blank'; setTimeout(function () { window.document.forms[0].target = '' }, 0);" 
runat="server" />
0 голосов
/ 15 ноября 2017

Добавление к @Devsainii ответа выше.

Добавьте атрибут OnClientClick="window.document.forms[0].target='_blank';" к вашей LinkButton, а затем в коде позади, просто используйте Response.Redirect("~/AnotherPage.aspx") для перехода на другую страницу.

0 голосов
/ 16 декабря 2015

Посмотрев на эти ответы, и ни один из них не был именно тем, что я хотел (сделать это с помощью кнопки), я в итоге использовал элемент управления гиперссылкой, но использовал тот же стиль CSS, что и мои обычные кнопки:

.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;

}

Это выглядело так же, как они! Если вы идете за кнопкой, которая открывает ссылку в новом окне, которым я был, это было почти идеально. В наборе ячеек таблицы он отображался лишь на ощупь ниже, чем обычные кнопки, поэтому я назвал его следующим образом: "position: относительный; top: -2px;" и это помогло. Я также должен был заставить передний цвет белый:

<asp:HyperLink ID="btnSummaryReport" Target="_blank" runat="server" Text="SUMMARY REPORT" CssClass="button" ForeColor="white" Font-Size="8" style="position:relative; top:-2px" />
0 голосов
/ 13 февраля 2012

Просто визуализируйте якорь с href, установленным на соответствующий URL, и установите для атрибута target значение _blank, чтобы открыть URL в новом окне.

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