Вывод. У меня есть GridView с TemplateField, содержащим только ASP.NET LinkButton. Мой LinkButton выглядит так:
<asp:LinkButton ID="lbDoc" runat="server" OnClientClick="document.forms[0].target ='_blank';" OnCommand="ProcessRequest" Text='<%# Eval("Title").ToString() %>' CommandArgument='<%# Eval("ID").ToString() %>' />
Обратите внимание на свойство CommandArgument и OnCommand элемента управления. Каждая кнопка должна выполнять некоторую обработку на стороне сервера, в зависимости от CommandArgument, и в конечном итоге перенаправлять и отображать PDF-файл в новом окне. ВАЖНО: я не просто ссылаюсь на URL-адрес PDF, поэтому я не могу использовать элемент управления HyperLink или простой тег привязки. Обработка на стороне сервера является ключевой и необходимой.
Проблема: во время выполнения, когда пользователь нажимает одну из кнопок LinkButton, PDF-файл загружается по желанию в новом окне, однако все обратные передачи после этого также загружаются в новой вкладке/окне браузера. . У меня есть DropDownLists (с AutoPostback), которые запрашивают и повторно связывают мой GridView - если пользователь выбирает другие параметры фильтра в этих DropDownList после нажатия на одну из кнопок LinkButton, результаты отправляются обратно в новую вкладку/окно браузера. Вот в чем проблема — пользователь получит беспорядок из вкладок/окон.
Что я пробовал Пользователь Pow-Ian описал ту же проблему здесь, но предложенное решение Javascript помогло не работает для меня. Я пробовал решение на чистом JavaScript, такое как это, но оно также не работает. Он отобразит target='_blank' в результирующем теге, но по какой-то причине не обработает ссылку в новой вкладке браузера.
Какие-либо предложения?