2010-04-30 2 views
0

J'ai une page avec les contrôles utilisateur ajoutés dynamiquement. À l'intérieur de certaines de ces commandes utilisateur, il y a des éléments de formulaire, soit des balises <input> simples, soit des commandes tierces complexes (Telerik RadDatePicker par exemple) (détails techniques à la fin).Définition du bouton de soumission par défaut sans asp: panneau

Ces contrôles sont actuellement identifiés en tant que partie du même formulaire basé sur un paramètre de chaîne ValidationGroup. Ma question est comment puis-je obtenir ces éléments de formulaire à soumettre sur Enter ensemble et soulever le bon événement de publication?

Je ne peux pas utiliser la propriété du panneau DefaultButton car l'ID du bouton d'envoi n'est pas disponible dans le contrôle côté serveur. Je pense que je pourrais être en mesure d'utiliser clientside jquery comme ceci:
<input onKeyPress="javascript:if (event.keyCode == 13) {$(this).change(); $('#submitclientid').click();}" ...>

Mais je ne sais pas comment faire pour les contrôles tiers.

Autres détails techniques:
Chaque élément de formulaire se trouve dans un module DNN distinct. La communication entre modules peut être utilisée pour faire passer le côté du serveur de données, ce qui permet à plusieurs modules de fonctionner ensemble dans le cadre d'un seul formulaire logique sur une page.

Répondre

0

Apparemment, la seule façon de le faire est par l'intermédiaire côté client JS comme suggéré dans la question (vous pouvez cependant ignorer la jquery et au lieu d'utiliser __dopostback).

0

Avez-vous essayé de définir la propriété DefaultButton de Form?

Exemple:

<form defaultButton="myButtonControl" runat="server"> 
... 
</form> 
+0

peut pas faire. Il peut y avoir plusieurs boutons par défaut pour les formulaires distincts qui se trouvent sur la même page. –

+0

Je pense que je pourrais mal comprendre: comment une même forme peut-elle avoir * plusieurs * boutons par défaut? Le but de DefaultButton est d'avoir un seul bouton comme bouton par défaut pour l'objet auquel il est attribué. Vous pouvez avoir plusieurs formulaires - chacun avec leur propre DefaultButton - mais je ne pense pas qu'il soit possible (ou même commun?) D'avoir plusieurs DefaultButtons. Dans le script côté client, la propriété que vous souhaitez probablement (si vous voulez vous occuper d'assigner les boutons par défaut vous-même, ce qui vous semble être le cas si vous en voulez plusieurs par formulaire) l'est. Identité du client. – Richard

+0

1. Je n'ai pas accès au contrôle de formulaire. 2. Il n'y a qu'un seul contrôle de formulaire sur la page et je ne peux pas en ajouter un autre. 3. Il est parfaitement possible de définir plusieurs boutons par défaut via un tag . Je ne peux pas faire cela non plus parce que je ne peux pas définir l'identifiant (et je ne peux pas entourer les contrôles avec le panneau parce qu'ils sont dynamiquement ajoutés à la page par le cadre). 4. Je pourrais utiliser l'ID du client, mais je ne sais pas comment le faire avec les contrôles tiers (bien que je soupçonne que c'est la seule solution, donc je dois apprendre comment) –

0

Par code.

ASPX: 1 forme (form1), 2 boutons (Button1 & Bouton2)

aspx.cs:

protected void Page_Load(object sender, System.EventArgs e) 
{ 
    form1.DefaultButton = Form.FindControl("Button2").UniqueID; 
} 
Questions connexes