IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème doit clicker sur bouton 2 fois


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut Problème doit clicker sur bouton 2 fois
    Bonjour,
    J'ai un souci dans un userobject qui est à l'intérieur d'un panel Ajax.
    Dans mon userobject il y a une gridview et un asp:ImageButton,
    quand je clique sur le bouton l'evt page_load est déclenché la première fois tous seul, et la grille est réinitialisée...
    ensuite je dois cliquer une seconde fois pour déclencher l'évt rattaché au bouton...

    voici mon code dans le ascx.cs :
    ************************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            protected void Page_Load(object sender, EventArgs e)
            {
            }
            protected void btnNew_Click1(object sender, ImageClickEventArgs e)
            {
                BSEQU_MENU_LIBELLES lSessionBSEQU_MENU_LIBELLES = new BSEQU_MENU_LIBELLES();
                lSessionBSEQU_MENU_LIBELLES = sessionBSEQU_MENU_LIBELLES;
                lSessionBSEQU_MENU_LIBELLES.InsertEQU_MENU_LIBELLES(0, 0, 0, 1, "pp");
                GridView1.DataSourceID = "";
                GridView1.DataSource = lSessionBSEQU_MENU_LIBELLES.EQU_MENU_LIBELLES;
                GridView1.DataMember = lSessionBSEQU_MENU_LIBELLES.EQU_MENU_LIBELLES.TableName;
     
                GridView1.DataBind();
            }

    L' ascx :
    ******
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MenuDetail.ascx.cs" Inherits="Acs.SCONF.Web.Pages.Equipement.Menu.MenuDetail" %>
    <%@ Register Assembly="Socle2Web" Namespace="Socle2Web" TagPrefix="cc1" %>
     
    <div id="divOngletz" class="OngletsStyle">
     
     
        <table>
            <tr>
                <td> 
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                        DataKeyNames="ITEM_ID,TYPE_LIGNE,NUM_LIGNE,LANG_CODE" 
                        onrowdatabound="GridView1_RowDataBound">
                        <Columns>
                            <asp:TemplateField HeaderText="Langue">
                             <ItemTemplate> 
                                <asp:DropDownList ID="ddlLangue" runat="server" style="width:100px;">
                                </asp:DropDownList>                        
                             </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="N° Ligne">
                             <ItemTemplate>
                               <asp:TextBox MaxLength="1" runat="server" 
                                   ID="txtNUM_LIGNE"  />
                             </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Libellé">
                             <ItemTemplate>
                               <asp:TextBox MaxLength="40" runat="server" 
                                   ID="txtLIBELLE_LIGNE"  />
                             </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="ITEM_ID" HeaderText="ITEM_ID" ReadOnly="True" 
                                SortExpression="ITEM_ID"  itemstyle-cssclass="hiddencol" HeaderStyle-cssclass="hiddencol" /> 
                            <asp:BoundField DataField="TYPE_LIGNE" HeaderText="TYPE_LIGNE" ReadOnly="True" 
                                SortExpression="TYPE_LIGNE"  itemstyle-cssclass="hiddencol" HeaderStyle-cssclass="hiddencol" />
                            <asp:BoundField  DataField="LANG_CODE" HeaderText="LANG_CODE" 
                                SortExpression="LANG_CODE"  itemstyle-cssclass="hiddencol" HeaderStyle-cssclass="hiddencol" />
                            <asp:BoundField  DataField="NUM_LIGNE" HeaderText="NUM_LIGNE"  
                                SortExpression="NUM_LIGNE" DataFormatString="#"  itemstyle-cssclass="hiddencol" HeaderStyle-cssclass="hiddencol" />
                            <asp:BoundField  DataField="LIBELLE_LIGNE" HeaderText="LIBELLE_LIGNE" 
                                SortExpression="LIBELLE_LIGNE"  itemstyle-cssclass="hiddencol" HeaderStyle-cssclass="hiddencol" />
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
            <tr> <td>
    <ul class="listTabBtn">
    	<li>
            <asp:ImageButton ID="btnNew"  onclick="btnNew_Click1" runat="server" 
                Height="27px" Width="27px"    
                style="background-position: center center;
    	        background-repeat: no-repeat;
    	        height: 27px;
    	        width: 27px;
    	        border-width: 2px;
    	        overflow: hidden;
    	        hasLayout: -1;"     
           	ImageUrl="../../../../img/treeview/bt_petit_ajouter_O.png"
            onmouseover="this.src='../../../../img/treeview/bt_petit_ajouter_over_O.png'" 
            onmouseout="this.src='../../../../img/treeview/bt_petit_ajouter_O.png'" 
            CausesValidation="False" BorderStyle="Outset" />
    	</li>
    	<li>
            <asp:ImageButton ID="btnDelete2"  onclick="btnDelete2_Click" runat="server" 
                Height="27px" Width="27px"    
                style="background-position: center center;
    	        background-repeat: no-repeat;
    	        height: 27px;
    	        width: 27px;
    	        border-width: 2px;
    	        overflow: hidden;
    	        hasLayout: -1;"     
           	ImageUrl="../../../../img/treeview/bt_petit_supprimer_O.png"
            onmouseover="this.src='../../../../img/treeview/bt_petit_supprimer_over_O.png'" 
            onmouseout="this.src='../../../../img/treeview/bt_petit_supprimer_O.png'" 
            CausesValidation="False" BorderStyle="Outset" />
    	</li>
    </ul>
    </td>
    </tr> 
        </table>
     
    </div>
     
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="FillLikeDS" 
        TypeName="Acs.BS.BSEQU_MENU_LIBELLES">
        <SelectParameters>
            <asp:Parameter Name="p_ITEM_ID" Type="Object" />
            <asp:Parameter Name="p_TYPE_LIGNE" Type="Object" />
            <asp:Parameter Name="p_NUM_LIGNE" Type="Object" />
            <asp:Parameter Name="p_LANG_CODE" Type="Object" />
            <asp:Parameter Name="p_LIBELLE_LIGNE" Type="Object" />
            <asp:Parameter Name="pAll" Type="Boolean" />
        </SelectParameters>
    </asp:ObjectDataSource>

  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Je ne vois pas ton panel Ajax dans le code, à mon avis ça vient de là.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Salut rohstev et merci de t'intéresser à mon souci qui d'ailleurs persiste...

    Donc voici la page menu.aspx qui contient le userObject qui pose problème,
    En fait j'ai 2 panels Ajax dans ma page, un pour le treeview à gauche et l'autre pour des onglets à droite qui sont chargés dynamiquement dans UpdatePanel_onglets/plhControl

    Je précise que dans la page à chaque page_load je recharge dynamiquement l'onglet :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
            protected virtual void Page_Load(object sender, EventArgs e)
            {
                string st = @"reexec();";
                ScriptManager.RegisterStartupScript(this, typeof(WebForm1), "jesaispas", st, true);
     
                if (!Page.IsPostBack)
                {
                    InitializeTree();
                    // Si il y a des noeuds on sélectionne le premier
                    //if (BaseTV.Nodes.Count > 0)
                    //{
                    //    //BaseTV.Nodes[1].Select();
                    //    //BaseTV.Nodes[0].Select(); // Pour déclencher TV_SelectedNodeChanged
                    //}
     
                }
                else
                {
                    LoadControlState(BaseTV.SelectedNode.Value);
                }
            }
     
            protected virtual void LoadControlState(string Nodekey)
            {
                if ((ViewState[VIEWSTATE_CONTROL_PATH] != null) && (ViewState[VIEWSTATE_CONTROL_KEY].ToString() == Nodekey))
                {
                    BasePlhControl.Controls.Clear();
     
                    string controlpath = (string)ViewState[VIEWSTATE_CONTROL_PATH];
                    string key = (string)ViewState[VIEWSTATE_CONTROL_KEY];
                    TreeViewTabControlBase tabControl = (LoadControl(controlpath) as TreeViewTabControlBase);
                    tabControl.Cle = GetCle(key);
                    tabControl.ID = key;
     
                    BasePlhControl.Controls.Add(tabControl);
                }
            }

    menu.aspx :
    *********
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <%@ Page Title="" Language="C#" MasterPageFile="~/Master/TreeviewBase.Master" AutoEventWireup="true" CodeBehind="Menu.aspx.cs" Inherits="Acs.SCONF.Web.Pages.Equipement.Menu.Menu" %>
     
    <asp:Content ID="pageCntTV" ContentPlaceHolderID="cntTV" runat="server">
     
                <asp:UpdatePanel ID="UpdatePanel_tv" runat="server">
                    <ContentTemplate>
                        <asp:TreeView ID="TV" runat="server"  ExpandDepth="0" 
                            onselectednodechanged="TV_SelectedNodeChanged" 
                            ontreenodeexpanded="TV_TreeNodeExpanded" 
                            ontreenodecollapsed="TV_TreeNodeCollapsed">
                            <HoverNodeStyle CssClass="tv_hovernode" />
                            <NodeStyle CssClass="tv_node" />
                            <SelectedNodeStyle CssClass="tv_selectednode" />
                        </asp:TreeView>
                        <asp:LinkButton ID="LBCreer" style="position: absolute; width: 40px; bottom: 0; left: 0;" runat="server" OnClick="TV_Creer">Créer,</asp:LinkButton>
                        <asp:LinkButton ID="LBSupprimer" style="position: absolute; width: 70px; bottom: 0; left: 45px;" runat="server" OnClick="TV_Supprimer">Supprimer</asp:LinkButton>
                    </ContentTemplate>
                </asp:UpdatePanel>
     
    </asp:Content>
    <asp:Content ID="pageCntOnglets" ContentPlaceHolderID="cntOnglets" runat="server" >
            <asp:UpdatePanel ID="UpdatePanel_onglets" runat="server" >
                <ContentTemplate>
     
    <!--[if lte IE 6]>
    <style>
    #divMenuOnglets {
        margin-top: -1px;
    }
    </style>
    <![endif]-->
                  <div id="divMenuOnglets" style="position:absolute; top:0px; width:100%;height: 27px; ">
                    <asp:Menu ID="MenuOnglets"  Orientation="Horizontal" runat="server" 
                        DynamicEnableDefaultPopOutImage="False"  
                        onmenuitemclick="mnuControl_MenuItemClick">
                        <StaticMenuStyle CssClass="menu_onglets_not_selected" />
                        <StaticSelectedStyle CssClass="menu_onglets_selected" />
                    </asp:Menu>
                    </div>
     
                    <div id="divUserObjectOnglet" style="position:absolute; top:26px; height:50px; width:100%;">
                        <asp:PlaceHolder ID="plhControl" runat="server" EnableViewState="true" ></asp:PlaceHolder>
                    </div>
     
                     <!-- palette navigation -->
                     <div id="divPalette" style="position:absolute; bottom:0px; width:100%; height: 43px; background-color: #F5CF75; overflow:hidden">
                        <table id="BoutonsDuBas" cellspacing="0" style="position:relative; bottom:0px; left:20%; height: 30px;background-position: bottom; background-color: #F5CF75;" cellpadding="0" width="220" border="0" >
     
                            <tr>
                                <td align="center" >
                                        <asp:LinkButton ID="BtnCancel" runat="server" CssClass="btn-cancel" onclick="BtnCancel_Click" 
                                        ><span class="btn-txt"><asp:Literal ID="Literal4" runat="server" EnableViewState="false" Text="Annuler" /></span></asp:LinkButton>
                                </td>
                                <td align="center">
                                        <asp:LinkButton ID="BtnClose" runat="server" CssClass="btn-close" onclick="BtnClose_Click" 
                                        ><span class="btn-txt"><asp:Literal ID="Literal5" runat="server" EnableViewState="false" Text="Fermer" /></span></asp:LinkButton>
                                </td>
                                <td align="center">
                                        <asp:LinkButton ID="BtnSave" runat="server" CssClass="btn-save" onclick="BtnSave_Click" 
                                        ><span class="btn-txt"><asp:Literal ID="Literal2" runat="server" EnableViewState="false" Text="Enregistrer" /></span></asp:LinkButton>
                                </td>
                            </tr>										
     
                        </table>
                      </div>
                        <!-- fin palette navigation -->    
                   </ContentTemplate>
                </asp:UpdatePanel>
    </asp:Content>
     
    <asp:Content ID="idTbmCntJS" ContentPlaceHolderID="tbmCntJS" runat="server">
     
      <script type="text/javascript" charset="utf-8">
     
      // Code qui doit être réexécuté à chaque appel Ajax
          reexec();
       function reexec() {
          $(document).ready(function() {
     
              $('.tv_node').contextMenu('context-menu', {
              'Créer type 1':
          { click: function(element) { element.css({ backgroundColor: 'green', color: 'black' }) },
              klass: "menu-item"
          },
                  'Créer type 2':
          { click: function(element) { element.css({ fontSize: '25px' }) },
              klass: "menu-item"
          }
              },
            { disable_native_context_menu: true });
            CustResize();
     
          });
      }
     
     </script>
    </asp:Content>

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Je te propose :

    1) mettre ton code dans des balises, ça sera plus facile à lire :-) sur le forum

    2) mettre ton ImageButton dans le Trigger de l'updatePanel

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/01/2014, 09h22
  2. Réponses: 6
    Dernier message: 13/11/2012, 08h17
  3. probléme lorsqu'on appuis sur un bouton deux fois
    Par maissaab dans le forum wxPython
    Réponses: 1
    Dernier message: 24/03/2011, 12h29
  4. Réponses: 6
    Dernier message: 04/12/2006, 18h52
  5. Réponses: 3
    Dernier message: 21/08/2006, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo