2011-04-18 9 views
2

J'ai une page .aspx qui contient deux boutons, l'un est "btnCancel" et l'autre est "btnSave".Réglage du bouton par défaut

<asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="Button" OnClick="btnCancel_Click" /> 
<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="Button" OnClick="btnSave_Click" 
OnClientClick="tinyMCE.triggerSave(false,true);" ValidationGroup="grp"/> 

Maintenant, le problème est après avoir rempli certaines des zones de texte qui sont présents dans cette page, si j'appuyez sur la touche « Enter bouton » l'événement « btnCancel_Click » est mise à feu au lieu de « btnSave_Click ».

Quelqu'un peut-il me suggérer comment régler le bouton "btnSave_Click" par défaut? Donc, si quelqu'un appuie sur le bouton "entrer", il déclenchera l'événement "btnSave_Click".

Toute aide s'il vous plaît.

Question mise à jour:

<asp:Panel DefaultButton="btnSave" runat="server" ID="pnlTest"> 
    <asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="Button" OnClick="btnCancel_Click" /> 
    <asp:Button ID="btnSave" runat="server" Text="Save" CssClass="Button" OnClick="btnSave_Click" 
              OnClientClick="tinyMCE.triggerSave(false,true);" ValidationGroup="grp" /> 
    </asp:Panel> 
+0

J'utilisé le code ci-dessous: this.Form.DefaultButton = btnSave.UniqueID ; Cela fonctionne bien. Donc, ça peut être une réponse alternative. –

Répondre

2

mettre vos contrôles de formulaire dans le Panneau de asp.net et mis DefaultButton à votre bouton id Exemple:

<asp:Panel DefaultButton="btnSave">  
<asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="Button" OnClick="btnCancel_Click" /> 
<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="Button" OnClick="btnSave_Click"OnClientClick="tinyMCE.triggerSave(false,true);" ValidationGroup="grp"/> 
</asp:Panel> 
+0

Cela ne fonctionne pas. Puis-je utiliser la même chose dans mon DIV. –

+0

Avez-vous ajouté tous les autres contrôles comme les zones de texte et les étiquettes dans le même panneau? Cela devrait fonctionner si toutes vos commandes sont dans les panneaux et pas seulement les boutons. essayez-le et nourrissez-moi –

+0

Oui, ça fonctionne bien maintenant. Merci beaucoup pour votre temps et votre soutien. –

6

Définissez l'attribut defaultbutton sur les contenant panel:

<asp:panel defaultbutton=“btnSave”> 

Taken de this blogpost.

+0

Cette page ne contient aucun panneau et hérite d'une page maître. –

+0

Ensuite, ajoutez les deux boutons à un panneau, comme suggéré par Pr0fess0rX. – Mizipzor

+0

@mizipzor Cela ne fonctionne pas. Le même problème existe. –

0

nous pouvons définir la « defaultButton » propriété dans la balise form

+0

Merci pour votre aide. –

1

vous pouvez simplement utiliser javascript

<script language="javascript" type="text/javascript" > 
function button_click(objTextBox,objBtnID) 
{ 
    if(window.event.keyCode == 13) 
    { 
     document.getElementById(objBtnID).focus(); 
     document.getElementById(objBtnID).click(); 
    } 
} 
</script> 

ajouter dans votre événement de chargement de la page

this.TextBox1.Attributes.Add("onkeypress", "button_click(this,'" + this.btnSave.ClientID + "')"); 
+0

Merci beaucoup, je le garderai à l'esprit, cela sera utile dans certains autres cas. –

0

ce jeu javascript pour en-tête

function checkKey(b1, e) { 
if (e.keyCode == 13) { 
    //alert(e.keyCode + 'validation.js'); 
    document.getElementById(b1).click(); 
    return false; 
} 

}

et définir les attributs pour contrôler

txtboxname.Attributes.Add("onkeypress", "javascript:return checkKey('" + buttonName.ClientID + "',event);"); 
Questions connexes