Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > > >
Восстановить пароль Регистрация
 
kyjek
Новичок
1 / 1 / 0
Регистрация: 01.10.2011
Сообщений: 23
01.10.2011, 23:58     Открытие новой страницы в новой вкладке   #1
Открываю новую страницу с помощью Response.Redirect, но предыдушая страница закрывается.
Что следует добавить в код чтобы новая стр открывалась в новой вкладке.

Код C#
1
2
3
4
protected void Button1_Click(object sender, EventArgs e)
{
  Response.Redirect(ResolveUrl("~/m.xml"));
}
AdAgent
Объявления
01.10.2011, 23:58     Открытие новой страницы в новой вкладке
Alligieri
CEO
Эксперт C++
2234 / 1228 / 22
Регистрация: 16.03.2009
Сообщений: 3,583
02.10.2011, 08:04     Открытие новой страницы в новой вкладке   #2
kyjek, для элемента Button1
Код C#
1
OnClientClick="aspnetForm.target ='_blank';"
kyjek
Новичок
1 / 1 / 0
Регистрация: 01.10.2011
Сообщений: 23
02.10.2011, 12:01  [ТС]     Открытие новой страницы в новой вкладке   #3
Добавил строчку 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';"
kyjek
Новичок
1 / 1 / 0
Регистрация: 01.10.2011
Сообщений: 23
03.10.2011, 14:20  [ТС]     Открытие новой страницы в новой вкладке   #4
работает все хорошо.Но если на форме расположены 2или более кнопок, а в новом окне мне надо чтобы открывалось только по нажатию на одну. Т.е. проблема в том что после нажатия на кнопку с
Код C#
1
OnClientClick="form1.target ='_blank';" 
все кнопки открывают новые формы( такие же) как убрать этот эффект?
Alligieri
CEO
Эксперт C++
2234 / 1228 / 22
Регистрация: 16.03.2009
Сообщений: 3,583
03.10.2011, 14:41     Открытие новой страницы в новой вкладке   #5
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()"> 
AdAgent
Объявления
03.10.2011, 14:41     Открытие новой страницы в новой вкладке
ichgo
Форумчанин
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 168
12.02.2012, 11:06     Открытие новой страницы в новой вкладке   #6
Добрый день! А не подскажите что именно надо вводить вот сюда?

Код JavaScript
1
OnClientClick="form1.target ='_blank';" 
Я уже попробовал все варианты, и вписать название страницы, и id форму на странице
Хелп!
sau
Форумчанин
1113 / 1032 / 40
Регистрация: 22.07.2011
Сообщений: 2,938
12.02.2012, 13:16     Открытие новой страницы в новой вкладке   #7
Если у формы адрес выставлять то на любое событие отправки формы (для всех постбэк контролов) данные будут передаваться по указанному адресу.

Если только для одной конкретной кнопки то можно так :
Код 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);
}
В общем вариантов много, какой удобнее зависит от задачи
ichgo
Форумчанин
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 168
15.02.2012, 11:07     Открытие новой страницы в новой вкладке   #8
Добрый день! К сожалению предложенные вами варианты не совсем удобно, вот как сейчас выглядит обработчик кнопки, по которой я должен открыть другую страницу
Код 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')"
При нажатии на кнопку, страница грузится в новом окне, но не передаются параметры на новую страницу, и я получаю ошибку

Посоветуйте как тут правильнее поступить, Спасибо!
sau
Форумчанин
1113 / 1032 / 40
Регистрация: 22.07.2011
Сообщений: 2,938
15.02.2012, 13:22     Открытие новой страницы в новой вкладке   #9
Код 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 по выбранной дате, это все можно на клиенте сделать и открыть новое окно.
ichgo
Форумчанин
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 168
15.02.2012, 14:19     Открытие новой страницы в новой вкладке   #10
Это сделано не для передачи даты, просто есть 1 страница, и в зависимости от того, по какой кнопке идет переход на неё, идут разные запросы и формируются разные таблицы.

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

Заранее спасибо!
ichgo
Форумчанин
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 168
21.02.2012, 21:07     Открытие новой страницы в новой вкладке   #11
up, помогите

Добавлено через 42 минуты
ResolveUrl так же открывает страницу в текущей вкладке
sau
Форумчанин
1113 / 1032 / 40
Регистрация: 22.07.2011
Сообщений: 2,938
21.02.2012, 21:19     Открытие новой страницы в новой вкладке   #12
Ну включи мозг немного, почитай хоть доку по windows.open и по Page.ClientScript в msdn-е.
В примерах тебе уже все написали, там правда есть пару очепяток на "сообразительность" ).
antez
Новичок
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 12:56     Открытие новой страницы в новой вкладке   #13
У меня кнопка находится внутри updatepanel. Ни один из указанных способов не помогает, страница открывается в текущей вкладке.

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

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

Можно ли достичь этого же эффекта при UpdatePanel?
sau
Форумчанин
1113 / 1032 / 40
Регистрация: 22.07.2011
Сообщений: 2,938
25.03.2012, 15:46     Открытие новой страницы в новой вкладке   #18
Разница в том что когда окно открывается скриптом, браузер блокирует его из соображений антиспама.
Ну как вариант можно создать скрытую ссылку, а потом скриптом кликнуть по ней, сам не проверял но думаю прокатит.
antez
Новичок
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 4
25.03.2012, 21:23     Открытие новой страницы в новой вкладке   #19
Использовал, как обычную ссылку, так и asp:HyperLink, но всё равно при использовании кода
Код C#
1
ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", "document.getElementById('H1').click();", true);
браузеры блокируют, как всплывающее окно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2012, 16:48     Открытие новой страницы в новой вкладке
Еще ссылки по теме:

C# ASP.NET Открытие новой страницы
C# ASP.NET Как можно открыть изображение в новой вкладе окна
C# ASP.NET Добавление новой информации на верх страницы
Монфрид
Форумчанин
946 / 832 / 91
Регистрация: 07.03.2012
Сообщений: 2,732
25.07.2012, 16:48     Открытие новой страницы в новой вкладке   #20
а как в asp mvc сделать открытие страницы в новой вкладке?
Yandex
Объявления
25.07.2012, 16:48     Открытие новой страницы в новой вкладке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Опции темы

Текущее время: 02:42. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Яндекс.Метрика