2013-03-06 1 views
1

Я пытаюсь щелкнуть правой кнопкой мыши по LinkButton и открыть его на новой вкладке, или отдельная страница окна ничего не отображает. Я нашел некоторое решение для использования кнопки гиперссылки, поскольку у нее есть свойство для установки цели на «_blank», но LinkButton не имеет никакого целевого атрибута.Ссылка: «щелкните правой кнопкой мыши и откройте в новой вкладке» не работает

Я хочу использовать LinkButton вместо кнопки гиперссылки, просто потому, что я не могу установить аргумент команды или имя команды на кнопку гиперссылки и не может запустить на нем событие.

<asp:LinkButton ID="lnkHeadingHindi" Text='<%#Patrika.Common.ConvertNews(Eval("strMainHeadingHin").ToString())%>' CommandArgument='<%#Eval("intNewsId") %>' runat="server"></asp:LinkButton> 

Было бы здорово, если бы у кого-нибудь было решение и сообщите мне в случае каких-либо проблем.

Спасибо!

+0

Попробуйте http://stackoverflow.com/questions/3807581/open-page- in-new-window-when-a-link-button-is-clicked –

ответ

0

От docs

Используйте регулятор LinkButton создать кнопку гиперссылкой стиле на веб-странице. Элемент управления LinkButton имеет тот же вид, что и элемент управления HyperLink, но имеет те же функции, что и элемент управления Button. Если вы хотите установить ссылку на другую веб-страницу при щелчке элемента управления, рассмотрите возможность использования элемента управления HyperLink.

Поскольку на самом деле эта ссылка не используется в стандартном смысле, на элементе управления нет элемента Target (элемент управления HyperLink имеет цель) - он пытается выполнить PostBack на сервере из текстовой ссылки.

В зависимости от того, что вы пытаетесь сделать, вы можете либо:

1) Использование элемента управления HyperLink, и установить свойство цели

2) Обеспечить метод к OnClientClick property , который открывает новое окно в нужное место.

3) В вашем коде, который обрабатывает PostBack, добавьте JavaScript для запуска на странице Load, который откроет новое окно в нужном месте.

Если вы хотите, когда нажмите кнопку ссылки, а затем открыть новое окно,

см this

+0

Как мы можем задать аргумент команды внутри управления гиперссылкой? –

+0

См. Этот форум http://forums.asp.net/t/1482174.aspx/1 – 2013-03-06 08:08:02

+0

не полезен для меня .. и даже управление гиперссылкой не запускает какое-либо событие ... так как я могу использовать гиперссылку вместо linkbutton ? –

0

вставки базового тега, как этот

<head> 
    <base target="_blank" /> 
    </head> 
+0

Это не работает (по крайней мере для меня) - ссылка на обработанный якорь - это 'javascript: __ doPostBack ('ctl00 $ FeaturedContent $ ctl00', '')', поэтому вы пытаетесь вызвать функцию в новом окне что не существует. – Rawling

0

Если вы хотите передать некоторую информацию к используя гиперссылку, передайте ее в URL-адресе, используя QueryString.

<asp:HyperLink id="hyperlink1" 
        NavigateUrl="~/MyPage.aspx?intNewsId=10" 
        Text="ClickMe" 
        Target="_blank" 
        runat="server"/>  
0

Вы не можете иметь его в обоих направлениях, вам придется выбирать между:

1) LinkButton выполнения некоторого кода на текущей странице

2) гиперссылке открытия другой страницы в новом окне

Я предполагаю, что вы хотите, чтобы кнопка ссылки выполняла какой-то код на новой странице, но это невозможно.

или если u подобный использование.гнев тег

Просто делает якорь с HREF набором к соответствующему URL и установить целевой атрибут _blank будет открыть URL в новое окно

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

На основании принятого ответа на this question, если вы хотите выполните POST (например, LinkButton), но результат откроется в новом окне, вам нужно добавить target="_blank" в форму на странице, а не по самой ссылке.

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

Вместо этого попробуйте добавить следующий атрибут в вашей LinkButton:

OnClientClick="$('form').attr('target', 'blank')" 

Это будет динамически установить атрибут формы непосредственно перед форма размещена назад, нажав на ссылку.

Обратите внимание, что это не дает функциональности правой кнопки мыши, которую вы хотите, но она делает работать, чтобы открыть в новом окне левой кнопкой мыши.

Если у вас нет доступа к JQuery, вам нужно сделать что-то вроде

protected void Page_PreRender(object se, EventArgs e) 
{ 
    this.Page.Form.ID = "someUniqueID"; // unless your form already has an ID 
    yourLinkButton.OnClientClick = 
     "document.getElementById('" + 
     this.Page.Form.ClientID + 
     "').setAttribute('target', '_blank')"; 
} 
Смежные вопросы