Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/160: Рейтинг темы: голосов - 160, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 01.10.2011
Сообщений: 24

Открытие новой страницы в новой вкладке

01.10.2011, 22:58. Показов 31592. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Открываю новую страницу с помощью Response.Redirect, но предыдушая страница закрывается.
Что следует добавить в код чтобы новая стр открывалась в новой вкладке.

C#
1
2
3
4
protected void Button1_Click(object sender, EventArgs e)
{
  Response.Redirect(ResolveUrl("~/m.xml"));
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.10.2011, 22:58
Ответы с готовыми решениями:

Открытие новой страницы
Возможно ли написать ссыку на открытие новой страницы в только в Internet Explorer из любого браузера?

Как открыть сайт в новой вкладке
Засунул в форму tabControl и поместил на него webBrowser, хочу что бы при нажатии по ссылке в открывшемся сайте, новая страница открывалась...

Как открыть форму в новой вкладке?
Требуется из одной формы на нажатие кнопки открыть следующую форму в новой вкладке(хотя бы в той же), подскажите пожалуйста)

22
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
02.10.2011, 07:04
kyjek, для элемента Button1
C#
1
OnClientClick="aspnetForm.target ='_blank';"
1
2 / 2 / 0
Регистрация: 01.10.2011
Сообщений: 24
02.10.2011, 11:01  [ТС]
Добавил строчку OnClientClick="aspnetForm.target ='_blank';" как я понял сюда:

C#
1
2
3
<asp:Button ID="Button1" runat="server" 
            OnClientClick="aspnetForm.target ='_blank';" Text="Button" 
            onclick="Button1_Click" />

Код в кнопке:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Redirect("WebForm2.aspx");
        }
    }

Выдает ошибку:
[ERORR]Ошибка выполнения Microsoft JScript: 'aspnetForm' - определение отсутствует[/ERORR]

Добавлено через 3 минуты
А все допер что вставить
C#
1
OnClientClick="form1.target ='_blank';"
0
2 / 2 / 0
Регистрация: 01.10.2011
Сообщений: 24
03.10.2011, 13:20  [ТС]
работает все хорошо.Но если на форме расположены 2или более кнопок, а в новом окне мне надо чтобы открывалось только по нажатию на одну. Т.е. проблема в том что после нажатия на кнопку с
C#
1
OnClientClick="form1.target ='_blank';"
все кнопки открывают новые формы( такие же) как убрать этот эффект?
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
03.10.2011, 13:41
kyjek, вы хотите все и сразу

JavaScript
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript"> 
        function fixform() { 
            if (opener.document.getElementById("aspnetForm").target != "_blank") return; 
 
            opener.document.getElementById("aspnetForm").target = ""; 
            opener.document.getElementById("aspnetForm").action = opener.location.href; 
            } 
</script> 
 
<body onload="fixform()">
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
12.02.2012, 10:06
Добрый день! А не подскажите что именно надо вводить вот сюда?

JavaScript
1
OnClientClick="form1.target ='_blank';"
Я уже попробовал все варианты, и вписать название страницы, и id форму на странице
Хелп!
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
12.02.2012, 12:16
Если у формы адрес выставлять то на любое событие отправки формы (для всех постбэк контролов) данные будут передаваться по указанному адресу.

Если только для одной конкретной кнопки то можно так :
HTML5
1
OnClientClick="window.open('WebForm2.aspx')"
Ну или так:
C#
1
2
3
4
5
protected void Button1_Click(object sender, EventArgs e)
{
  //тут может быть дополнительная логика обработки события
  ClientScript.RegisterStartupScript(this.GetType(), "window.open", "window.open('WebForm2.aspx')", true);
}
В общем вариантов много, какой удобнее зависит от задачи
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
15.02.2012, 10:07
Добрый день! К сожалению предложенные вами варианты не совсем удобно, вот как сейчас выглядит обработчик кнопки, по которой я должен открыть другую страницу
C#
1
2
3
4
5
6
7
8
9
10
11
        protected void button1_Click(object sender, EventArgs e)
        {
            DateTime forenddate = Convert.ToDateTime(calendar1.SelectedDate);
            string enddate = forenddate.ToShortDateString();
            string url;
            string zapfornewpage= "тут у меня запрос с параметром";
 
            url = "notmainpage.aspx?zapros=" + zapfornewpage;
 
            Response.Redirect(url);
        }
А вот так обрабатывается вторая страница

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    protected void Page_Load(object sender, EventArgs e)
    {
        Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection();
        string zap = Request.QueryString["zapros"];
        string cs = "тут коннект к БД";
        conn.ConnectionString = cs;
        conn.Open();
        Oracle.DataAccess.Client.OracleCommand zzzzzz = new Oracle.DataAccess.Client.OracleCommand(zap, conn);
        Oracle.DataAccess.Client.OracleDataReader rrr = zzzzzz.ExecuteReader();
        datagrid1.DataSource = rrr;
        datagrid1.DataBind();
        conn.Close();
}
Аналогично все обрабатывается на ура, страница формируется верно, но не в новом окне(вкладке)
а заменяет главную страницу,
в случае если я добавляю
HTML5
1
OnClientClick="window.open('WebForm2.aspx')"
При нажатии на кнопку, страница грузится в новом окне, но не передаются параметры на новую страницу, и я получаю ошибку

Посоветуйте как тут правильнее поступить, Спасибо!
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
15.02.2012, 12:22
C#
1
2
3
4
5
6
7
8
9
10
11
protected void button1_Click(object sender, EventArgs e)
        {
            DateTime forenddate = Convert.ToDateTime(calendar1.SelectedDate);
            string enddate = forenddate.ToShortDateString();
            string url;
            string zapfornewpage= "тут у меня запрос с параметром";
 
            url = "notmainpage.aspx?zapros=" + zapfornewpage;
 
            ClientScript.RegisterStartupScript(this.GetType(), "window.open", "window.open(url)", true);
        }
А вообще не вижу большого смысла делать запрос лишь для формирования url по выбранной дате, это все можно на клиенте сделать и открыть новое окно.
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
15.02.2012, 13:19
Это сделано не для передачи даты, просто есть 1 страница, и в зависимости от того, по какой кнопке идет переход на неё, идут разные запросы и формируются разные таблицы.

Добавил
C#
1
ClientScript.RegisterStartupScript(this.GetType(), "window.open", "window.open(url)", true);
Теперь по нажатию на кнопку ничего не происходит, просто обновляет текущую страницу.
В чем может быть дело?

Заранее спасибо!
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
21.02.2012, 20:07
up, помогите

Добавлено через 42 минуты
ResolveUrl так же открывает страницу в текущей вкладке
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
21.02.2012, 20:19
Ну включи мозг немного, почитай хоть доку по windows.open и по Page.ClientScript в msdn-е.
В примерах тебе уже все написали, там правда есть пару очепяток на "сообразительность" ).
0
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 11:56
У меня кнопка находится внутри updatepanel. Ни один из указанных способов не помогает, страница открывается в текущей вкладке.

ЗЫ Без updatepanel всё работает.
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
25.03.2012, 12:40
Если в UpdatePanel-и, то нужно использовать методы ScriptManager-а:
C#
1
ScriptManager.RegisterStartupScript(this, this.GetType(), "window.open", script, true);
1
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 13:05
Да, теперь открывается в новой вкладке, но по умолчанию блокируется в браузерах, как всплывающее окно. Можно ли как-то избежать этой блокировки?
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
25.03.2012, 13:14
Настройки браузера
0
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 13:57
Если не использовать UpdatePanel, и использовать это:

Цитата Сообщение от Alligieri Посмотреть сообщение
kyjek, для элемента Button1
C#
1
OnClientClick="aspnetForm.target ='_blank';"
то страница открывается в новой вкладке, как обычный переход по ссылке с target ='_blank', не блокируется, как всплывающее окно.

Можно ли достичь этого же эффекта при UpdatePanel?
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
25.03.2012, 14:46
Разница в том что когда окно открывается скриптом, браузер блокирует его из соображений антиспама.
Ну как вариант можно создать скрытую ссылку, а потом скриптом кликнуть по ней, сам не проверял но думаю прокатит.
0
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 20:23
Использовал, как обычную ссылку, так и asp:HyperLink, но всё равно при использовании кода
C#
1
ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "document.getElementById('H1').click();", true);
браузеры блокируют, как всплывающее окно
0
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
25.07.2012, 15:48
а как в asp mvc сделать открытие страницы в новой вкладке?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2012, 15:48
Помогаю со студенческими работами здесь

Генерация новой страницы HTML
Есть форма: &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt; &lt;div class=&quot;one&quot;&gt; &lt;p&gt;Name of student&lt;/p&gt; &lt;input...

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

Как настроить вид IE при открытии новой страницы из ASP?
Как настроить вид IE при открытии новой страницы из ASP, т.е. убрать строку состояния, адресную строку, кнопки и развернуть на полный...

Progressbar открытие новой формы
Здравствуйте,уважаемые...На первой форме кнопка и прогрессбар.При нажатии на кнопку открывается вторая форма (сами понимаете долго раз уж...

создание новой формы
доброго времени суток не закидывайте помидорами, но я правда не нашла как это сделать надо создать новую форму по двойному щелчку по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru