Как установить целевой кадр для отправки формы в ASP.NET? - PullRequest
4 голосов
/ 16 февраля 2010

У меня есть страница asp.net в iframe, где все ссылки нацелены на _blank

<base target="_blank" />

Но я хочу, чтобы форма на нем отправлялась _self (то есть, iframe, где расположена страница), когда нажата одна кнопка. Форма представляет собой <asp:Panel> с элементом управления <asp:Button> для ее отправки.

Где я могу установить цель для этой формы? Поскольку в файле нет тега <form> или тега <input> (ASP.NET создает их при визуализации страницы), я не знаю, как изменить цель, чтобы переопределить мой тег <base>.

Ответы [ 2 ]

4 голосов
/ 22 февраля 2010

Я не уверен, правильно ли я вас понял, но вы можете установить цель в теге формы, например так:

<form method=post action="Page.aspx" target="_self">
3 голосов
/ 22 февраля 2010

Я только что нашел это сообщение на форумах asp.net от mokeefe , которое меняет цель на javascript.

Я просто положил его на свою страницу и попробовал. Я должен был сделать эти модификации:

1. Я использую только теги asp, поэтому у меня <asp:Button> not <input type="button">, и мой onclick должен быть методом на стороне сервера, который я вызываю по представлению. Поэтому я поместил этот новый JavaScript в OnClientClick :

<asp:Button ID="cmdEmailSearch" runat="server" Text="Search"
            OnClick="cmdEmailSearch_Click"
            OnClientClick="javascript:pageSubmit()"/>

2. Я удалил myForm.submit (), поскольку ASP.NET отображает страницу, помещая WebForm_DoPostBackWithOptions () javascript в кнопку onclick сразу после это ставит мой pageSubmit ()

<script type="text/javascript">

    function pageSubmit(){
        // where form1 is the Parent Form Id
        var myForm = document.getElementById('form1');
        myForm.target = '_self';
    }// end function
</script>
...