Bonjour tout le monde.
J'ai un soucis pour mettre le focus sur un tabPanel dans un composant utilisateur. J'ai fait un composant utilisateur (ASCX) comme suit
Dans le CodeBehind j'essai de metre la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <%@ Control Language="VB" AutoEventWireup="false" CodeFile="Messagerie.ascx.vb" Inherits="Module_Messagerie" %> <ajaxToolkit:TabContainer ID="tabMsg" runat="server"> <ajaxToolkit:TabPanel ID="msgRecu" runat="server" HeaderText="Boite de réception"> <ContentTemplate> <asp:SqlDataSource ID="sdsMsgRecu" runat="server" ConnectionString="<%$ ConnectionStrings:DataDev %>"></asp:SqlDataSource> <asp:GridView ID="gvMsgRecu" runat="server" DataSourceID="sdsMsgRecu" DataKeyNames="Id_Message"></asp:GridView> </ContentTemplate> </ajaxToolkit:TabPanel> <ajaxToolkit:TabPanel ID="msgEmmi" runat="server" HeaderText="Boite d'émission"> <ContentTemplate> <asp:SqlDataSource ID="sdsMsgEmmi" runat="server" ConnectionString="<%$ ConnectionStrings:DataDev %>"></asp:SqlDataSource> <asp:GridView ID="gvMsgEmmi" runat="server" DataSourceID="sdsMsgEmmi" DataKeyNames="Id_Message"></asp:GridView> </ContentTemplate> </ajaxToolkit:TabPanel> <ajaxToolkit:TabPanel ID="msgEnvoi" runat="server" HeaderText="Boite d'envoi" Visible="false"> <ContentTemplate> <asp:Table ID="tblGene" runat="server"></asp:Table> </ContentTemplate> </ajaxToolkit:TabPanel> <ajaxToolkit:TabPanel ID="msgDetail" runat="server" HeaderText="Détail du message" Visible="false"></ajaxToolkit:TabPanel> </ajaxToolkit:TabContainer>
de manière à faire apparaitre le 3° tab
Code : Sélectionner tout - Visualiser dans une fenêtre à part msgEnvoi.Focus()
Lorsque je place la commande dans le Init du composant il me dit :
J'en déduis que le focus arrive trop tôt, par rapport à la construction de la page, mais je me trompe peut-être.Une balise form avec runat=server doit exister sur la page pour que la propriété SetFocus() ou Focus puisse être utilisée.
Du coup, j'ai essayé de la metre dans le Load du composant, vu qu'il arrive plus tard, mais là, ça doit être trop tard parce que le focus n'est pas sur le 3° mais sur le premier.
Alors voilà, je sèche, vous avez une idée ?
Partager