Я получаю правильное перенаправление после нажатия кнопки ASP.NET, но не в новом окне, как указано

Нажатие кнопки ASP.NET перенаправляет на правильный веб-сайт, но на той же вкладке, а не на новой вкладке, что мне нужно сделать. Что не так с кодом OnClientClick="aspnetForm.target ='_blank';" ниже? Почему одного недостаточно и что еще нужно сделать?

Следующий код ASP.NET для кнопки управления:

<asp:Button ID="btnGenerateReport" runat="server" Text="Generate Report" 
OnClick="btnGenerate_Click" OnClientClick="aspnetForm.target ='_blank';" />

person Darcy Q    schedule 12.12.2012    source источник


Ответы (4)


Если вы ищете код на стороне сервера, чтобы открыть новое окно при нажатии кнопки, то вот как это сделать.

Добавьте следующий скрипт в раздел вашей страницы

<script language="javascript" type="text/javascript">
    function openNewWin(url) {
        var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1');
        x.focus();
    }
</script>

Затем добавьте элемент управления Button следующим образом.

<asp:Button ID="btnOpenPop" runat="server" Text="Open Pop"           
    onclick="btnOpenPop_Click" />

Наконец, добавьте некоторый код в код позади файла

protected void btnOpenPop_Click(object sender, EventArgs e)
{
    string url = "http://www.dotnetcurry.com";
    ClientScript.RegisterStartupScript(this.GetType(), "OpenWin", "<script>openNewWin('" + url + "')</script>");
}
person Zaheer Ahmed    schedule 12.12.2012

Я знаю два метода перенаправления страницы на новую вкладку в asp.

1) Первый способ, который вы уже используете и он тоже работает. Создайте событие onclientclick для кнопки и в коде, стоящем за кнопкой, напишите следующий код: -

button.OnClientClick = "aspnetForm.target='_blank'"; Response.Redirect("yourpage.aspx");

2) Вы также можете использовать JavaScript

 button.Attributes.Add("onclick", "window.open('yourpage.aspx');return false;");

Оба метода будут перенаправлять вашу страницу на новую вкладку при нажатии кнопки.

Ошибка с вашим кодом: OnClientClick = "aspnetForm.target='_blank;'" удалите точку с запятой после "_blank", и она будет работать.

person Himanshu    schedule 04.01.2013

Вы не можете использовать целевой атрибут на кнопке.

Вы должны использовать функцию JavaScript window.open()

Проверь это:

Метод открытия окна()

person Kapil Khandelwal    schedule 12.12.2012
comment
Спасибо. Итак, для некоторых вещей С# не может ничего сделать сам по себе без javascript, тогда... - person Darcy Q; 12.12.2012

Я не публикую ссылки легкомысленно, но я обнаружил, что этот сайт все объясняет, и он также решил мою проблему.

http://dotnetspidor.blogspot.co.uk/2009/01/open-new-window-in-aspnet-web-page_28.html

person Darcy Q    schedule 13.12.2012