J'ai activé la propriété AutoPostBack
de l'une des zones de texte de mon formulaire qui, selon w3 schools, doit uniquement déclencher une publication lorsque j'appuie sur Entrée ou sur Tab.Conflit Autopostback et doPostBack
J'appelle également un __doPostBack()
sur pageLoad, étant donné la réponse d'un utilisateur à une invite javascript. Quand je fais cela, le Request.Form['__EventTarget']
n'est pas ce que je l'ai mis dans l'appel à __doPostBack
.
Le vrai problème pour moi est que si je définis l'attribut AutoPostBack de TextBox sur false, le problème avec l'appel pageload __doPostBack disparaît. Ce n'est pas le comportement que je m'attendais. Des idées sur ce qui cause le problème? Pourquoi l'AutoPostBack activé aurait-il une influence?
Voici une partie du code:
asp:TextBox runat="server" ID="userName" OnTextChanged="UpdateTable" AutoPostBack="true"
script type="text/javascript"
//![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]
/script
input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value=""
input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""
input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value=""
function jsPrompt(name) {
var ans = confirm('really follow ' + name + '?');
if (ans) {
__doPostBack('follow', name);
}
}
Puis, dans la page codebehind:
if (Request.Form["__EventTarget"] == "follow")
followPerson(Request.Form["__EventArgument"]);
Mais, je continue à me que Request.Form["__EventTarget"]
est ","
, et je Ve est passé par le javascript dans le débogueur. Juste avant form.submit()
, les arguments ne sont pas ","
Terminé en corrigeant ceci en n'ajoutant pas le code __doPostBack manuellement. Aussi, avant cette correction, j'étais capable d'utiliser l'appel __doPostBack pour demander un PostBack, mais j'ai utilisé des champs cachés à la place pour soumettre des valeurs cibles et des arguments. – user420667