J'essaie de déclencher un envoi de formulaire via jQuery et d'avoir un feu d'événement côté serveur particulier.Firing Server Side Event de jQuery - __EVENTARGUMENT N'existe pas
client Code Side:
$("input[name=__EVENTARGUMENT]").val("SomeArg");
form = $("body form");
form.submit();
serveur Code Side:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
if (Request["__EVENTARGUMENT"] == "SomeArg")
{
//do some stuff
}
}
}
Le problème est, la "__EVENTARGUMENT" entrée cachée n'existe pas. J'ai découvert que si j'ajoute une liste déroulante de contrôle de serveur ASP.net avec autopostback = true, l'entrée cachée EVENTARGUMENT est créée. Existe-t-il un moyen plus simple d'avoir ASP.net pour créer ces entrées cachées, et me permettre d'obtenir leurs valeurs côté serveur sans ajouter de contrôles dont je n'ai pas vraiment besoin sur la page?
J'ai ajouté un contrôle 'test' HiddenField à la page. Le champ caché EVENTARGUMENT n'a pas été généré automatiquement. Je me méfie d'en créer un avec ce nom puisque le code de chargement javascript/page est en fait sur un contrôle utilisateur. Le contrôle utilisateur peut être placé sur des pages qui ont un champ masqué EVENTARGUMENT généré automatiquement ou des pages qui n'ont pas ce contrôle générées automatiquement. – KClough
Pourquoi avez-vous besoin de cet EVENTARGUMENT spécial? –
AH! Je n'ai pas réalisé que tous les champs de saisie nommés étaient accessibles via l'objet Request. MERCI! – KClough