ASP.NET page maître DefaultButton override
-
26-09-2019 - |
Question
I ont une page principale avec un élément de forme et l'ensemble d'attributs de defaultButton à un ImageButton côté serveur. Sur un de mes pages que je veux « override » l'attribut masterpage DefaultButton en définissant les formes DefaultButton en cas Page_Load.
i.e. À la page de mater:
<form id="form1" runat="server" defaultbutton="btnSearch">....</from>
Sur l'événement Page_Load page que "override" l'attribut page maître:
this.Form.DefaultButton = this.ibRecalc.ID;
erreurs avec:
Le DefaultButton de 'form1' doit être l'ID d'un contrôle de type IButtonControl
J'utilise des boutons d'image qui implémente IButtonControl
Toutes les idées de ce que je pourrais faire mal ou d'une autre façon d'aborder le problème?
Merci
La solution
Utilisez UniqueId. Étant donné que vous pouvez avoir plusieurs contrôles serveur avec le même identifiant de serveur, par exemple, dans un GridView, les besoins cadres à l'identifiant unique pour correspondre à.
this.Form.DefaultButton = this.ibRecalc.UniqueID;
Autres conseils
Vous pouvez essayer d'utiliser la propriété « DefaultButton » d'un groupe spécial ...
Placez votre bouton ou page entière ou div dans asp: Panel
// panneau de démarrage
asp: Panel ID = "pnlOpsCallSummay" runat = "server" DefaultButton = "btnSearch"
............
// Contrôle de vos besoins
..........
asp: Bouton ID = "btnSearch" runat = "server" Text = "Recherche"
close le pannel
Pas besoin de passer outre le bouton page maître
Si vous déplacez le panneau à l'intérieur du modèle de la connexion: -
<asp:login id="Login2" runat="server" loginbuttontype="Image">
<layouttemplate>
<asp:`enter code here`panel id="Panel1" runat="\
server"defaultbutton="LoginImageButton">
</asp:Panel>
</LayoutTemplate>
</asp:Login>
Ensuite, il fonctionne sans code. Vous pouvez définir loginbuttontype = « Image » ou lien ou bouton selon vos besoins.