Como defino o quadro de destino para envio de formulário no ASP.NET?
Pergunta
Eu tenho uma página asp.net em um iframe onde todos os links segmentam _blank
<base target="_blank" />
Mas eu quero que o formulário seja enviado para _ (ou seja, o iframe onde a página está localizada) quando o botão é clicado. A forma é um <asp:Panel>
com um <asp:Button>
controle para enviá -lo.
Onde posso definir o alvo para este formulário? Já que não há um <form>
tag ou um <input>
tag no arquivo (asp.net os fabrica quando renderiza a página), eu não sei como alterar o alvo para substituir meu <base>
marcação.
Solução 2
Acabei de encontrar esta postagem nos fóruns do ASP.NET por Mokeefe Isso muda o alvo por JavaScript.
Eu apenas coloquei na minha página e tentei. Eu tive que fazer essas modificações:
1. Estou usando tags ASP apenas, então eu tenho <asp:Button>
não <input type="button">
e meu ONCLICK Tem que ser o método do lado do servidor que estou chamando no envio. Portanto, coloquei este novo javascript em OnClientClick:
<asp:Button ID="cmdEmailSearch" runat="server" Text="Search"
OnClick="cmdEmailSearch_Click"
OnClientClick="javascript:pageSubmit()"/>
2. Eu removi o myform.submit (), já que asp.net renderiza a página colocando o Webform_dopostbackwithOptions () JavaScript no botão ONCLICK Logo depois de colocar meu 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>
Outras dicas
Não tenho certeza se entendi bem, mas você pode definir o alvo na tag de formulário, como esta:
<form method=post action="Page.aspx" target="_self">