Come faccio a impostare il frame di destinazione per l'invio dei moduli in ASP.NET?
Domanda
Ho una pagina asp.net in un iframe in cui tutti i link di destinazione _blank
<base target="_blank" />
Ma io voglio la forma su di esso per presentare al _self (vale a dire l'iframe in cui si trova nella pagina) quando il pulsante uno si fa clic. Il modulo è un <asp:Panel>
con un controllo <asp:Button>
per inviarlo.
Dove posso impostare l'obiettivo per questa forma? Dal momento che non v'è un tag <form>
o di un tag <input>
nel file (ASP.NET li rende quando si esegue il rendering della pagina), non so come cambiare il target di ignorare la mia tag <base>
.
Soluzione 2
Ho appena trovato questo post sui forum asp.net da < a href = "http://forums.asp.net/members/mokeefe.aspx" rel = "nofollow noreferrer"> mokeefe che cambia il bersaglio javascript.
Ho appena messo nella mia pagina e l'ho provato. Ho dovuto fare queste modifiche:
1. che sto utilizzando i tag asp solo, quindi ho <asp:Button>
non <input type="button">
e il mio onclick deve essere il metodo lato server sto chiamando su presentazione . Quindi ho messo questa nuova javascript in OnClientClick :
<asp:Button ID="cmdEmailSearch" runat="server" Text="Search"
OnClick="cmdEmailSearch_Click"
OnClientClick="javascript:pageSubmit()"/>
2. ho rimosso il myForm.submit () in quanto ASP.NET mostra la pagina mettendo WebForm_DoPostBackWithOptions () javascript del pulsante onclick subito dopo si mette il 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>
Altri suggerimenti
Non sono sicuro se ho capito bene, ma è possibile impostare la destinazione nel tag form, in questo modo:
<form method=post action="Page.aspx" target="_self">