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

JSF Java Discussion :

Problème pour setter le inputText


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut Problème pour setter le inputText
    Salut,

    Voila mon problème, j'ai une datatable et un inputText. Quand je clique sur la datatable je voudrais passer la valeur sur laquelle j'ai cliqué à l'inputText. C'est aussi simple que ça

    Donc coté jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ice:inputText id="idTxtFullNameAsset" value="#{bean.fullNameAsset}" />
    et coté bean j'aurais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setFullNameAsset("Machin");

    Mais cette opération ne marche pas. Donc j'ai essayé de recherche à contourner cela et j'ai trouvé cette solution :

    Coté bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UIInput inputTextFullName = (UIInput)FacesContext.getCurrentInstance().getViewRoot().findComponent("popupForm:idTxtFullNameAsset");
     
     if ( inputTextFullName != null )
     {
     	inputTextFullName.setValue(asset.getName());
     	inputTextFullName.setSubmittedValue(null);
     }
     
     this.setFullNameAsset(asset.getName());
    Ils disent que ça marche très bien et il y a d'autres qu'ils l'en essayer avec succès. Sauf que ça marche pas chez moi !!!!

    Si ça peut servir je peux vous mettre ma Jspx !

    Est ce qu'il y a quelqu'un qui a déja eu ce genre de problème ? Et comment à votre avis, je pourrais setter le inputText

    Merci pour votre aide.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    t as pas oublier le binding ?

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Non, J'ai essayé aussi le binding pour faire cela mais ca marche pas.

    Moi ce que je comprends pas c'est pourquoi on pourrait pas setter le inputText, juste on passant une valeur à la value. Apparemment c'est pas une particularité de Icefaces ...

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    es-tu sur de passer dans ton code? Peut etre que ton action n'est pas appelée pour cause d'erreur de validation ou parce que la datatable a changé entre le rendu et l'action... Es tu sur que inputTextFullName n'est pas null? Aussi, il est assez rare d'avoir besoin de passer par ce genre de bidouille. Si ce que tu veux c'est éditer un "bean" en fonction de la ligne choisie, le mieux est dans l'action de créer ce bean à la bonne valeur en question et d'avoir l'inputText qui pointe sur ce bean tout simplement.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Salut merci pour vos reponses,

    Je vous explique ce que je fais pas à pas, comme ça si je fais une erreur quelques parts vous allez vous rendre compte.

    Quand je clique sur la dataTable sur le lien "Edit"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ice:panelGroup style="text-align:center;">
         <ice:commandLink actionListener="#{bean.updateAssetManagers}">
                <ice:outputText value="Edit" />
         </ice:commandLink>
    </ice:panelGroup>
    Donc j'appelle la méthode updateAssetManagers la voila
    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
    public void updateAssetManagers(ActionEvent event)
    	{
    		try
    		{
    			HtmlDataTable 	dataTable 	= (HtmlDataTable) event.getComponent().getParent().getParent().getParent();
    			AssetManagerBean 	asset 	= (AssetManagerBean)dataTable.getRowData();
     
    			UIInput inputTextFullName = (UIInput)FacesContext.getCurrentInstance().getViewRoot().findComponent("popupForm:idTxtFullNameAsset");
    			UIInput inputTextTraderId = (UIInput)FacesContext.getCurrentInstance().getViewRoot().findComponent("popupForm:idTxtTraderIdAsset");
     
    			if ( inputTextFullName != null )
    			{
    				inputTextFullName.setValue(asset.getName());
    				inputTextFullName.setSubmittedValue(null);
    			}
    			if ( inputTextTraderId != null )
    			{
    				inputTextTraderId.setValue(asset.getId());
    				inputTextTraderId.setSubmittedValue(null);
    			}
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    Idéalement moi voila ce que je voudrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public void updateAssetManagers(ActionEvent event)
    	{
    		try
    		{
    			HtmlDataTable 	dataTable 	= (HtmlDataTable) event.getComponent().getParent().getParent().getParent();
    			AssetManagerBean 	asset 	= (AssetManagerBean)dataTable.getRowData();
     
    			this.setFullNameAsset(asset.getName()); // C'est juste un string
                            this.setTraderIdAsset(asset.getId()); // aussi un simple string
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    Et normalement avec cela mon inputText doit prendre les valeurs passées !!!
    voila mon inputText
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ice:panelGrid columns="1" id="idPanelGridTxtAsset">
                                <ice:inputText id="idTxtFullNameAsset" value="#{bean.fullNameAsset}" partialSubmit="true"/>
     
                                <ice:inputText id="idTxtTraderIdAsset" value="#{bean.traderIdAsset}" partialSubmit="true"/>
                              </ice:panelGrid>
    Dite moi s'il y a quelques choses d'anormales ?

    Pour finir, il passe dans toutes les méthodes indiquées ci dessus. Il met à jour le composant. Ce que j'ai remarqué par contre c'est qu'après la mise à jour du composant, le programme repasse dans la méthode set avec un string "", alors que je ne lui fait appelle null part... et c'est la ou le inputText reprend la chaine vide

    voila le lien ou j'ai trouvé la soit disant solution au problème, elle marche apparemment pour tout le monde sauf moi :
    http://www.icefaces.org/JForum/posts/list/4179.page

    Merci

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on dirait que tu essaie d'utiliser le action listener pour éviter d'avoir à utiliser un action, je me trompe? Tu dois vraiment préserver le reste du formulaire après l'action? Sinon, contente toi de simplement changer le bean et utilise un action qui fait revenir à la page actuelle, le formulaire sera alors recalculé. Exemple rapide et sans les détails


    un Bean X de session avec un liste de beans Y ainsi qu'avec une propriété selectedBean:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class X {
    //....
    List<Y> beans;
    Y selectedBean;
    // getters & setters
    // autres
    un datatable qui itère sur les beans, stockant le bean du row actuel dans "bean"
    dans chaque ligne un action qui pointe sur bean.selectMe();
    en dessous de la table, des champs qui pointent sur #{X.selectedBean.xxxx}

    et finalement ce code dans Y:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Y{
      // propriétés
      public String selectMe(){
         getX().setSelectedBean(this);
         return "new_y_Selected";
      }
    }
    Parce que, bidouiller le contenu des champs, perso je trouve pas çà toujours joli joli (je l'ai déjà fait mais plus proprement) car çà lie ton bean au design de la vue.

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Re,

    J'utilise l'action listener simplement pour recuperer ma dataTable car je crois que c'est plus propre que de le récupérer via findComponent car comme ta dis ça lie mon bean au design de ma vue.
    Même avec un action, j'ai toujours le même resultat.

    Sinon, pour ta solution, je vais essayer de l'implémenter, je te tiens au courant pour la suite. Même si je me dis que c'est bizar de devoir rafraichir ma vue pour settet le inpuText mais si elle fait ce que je veux, je demande pas plus . ah oui j'avais oublie de dire que j'avais changé le inputText par un outputText et ça marcher son pb. Donc c bien un problème propre au composant inputText

    Merci bien

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    sinon voilà un bout de code que j'ai déterré d'un listener qui reset un composant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        private void processReset(UIComponent c) {
            if (c instanceof EditableValueHolder) {
                EditableValueHolder e = (EditableValueHolder)c;
                e.setValue(null);
                e.setSubmittedValue(null);
                e.setLocalValueSet(false);
            }
            List l = c.getChildren();
            if (l.size()>0)
                for (Iterator i = l.iterator();i.hasNext();processReset((UIComponent)i.next()));
        }
    après ce bout de code, les composant concercnés reliront les beans.

  9. #9
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Merci bq, je préfère comme même cette solution

    Je vais l'essayer j'espère que ca marchera

    Merci

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Re,

    Je viens d'essayer ta méthode mais elle ne marche pas pour moi.

    Maintenant je suis sur que c'est à cause d'un truc subtile que je vois pas dans mon code, car c'est la même méthode préconise ici http://wiki.apache.org/myfaces/ClearInputComponents Et elle résout ce genre de problème.

    Je vais essayer de faire sortir mon inputText du bloc qui l'entoure, peut etre que ça vient de la !!!
    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
     
     <ice:panelStack selectedPanel="#{bean.selectedPanel}">
                      <ice:panelGroup id="assetManagersPanel">
                        <ice:panelGrid columns="2" styleClass="panelPopupGrid" id="idPanelGrid1">
                          <ice:panelGroup style=" border: 1px solid #ABABAB; " id ="idDatatableAssetPanel">
                            <ice:dataTable value="#{bean.assetRowDataModel}" var="row" id="tableSet1" rows="4" cellpadding="0" width="200px"
                            styleClass="tablestyle">
                              <ice:rowSelector styleClass="#{bean.styleRowSelector}" />
     
                              <ice:column>
                                <f:facet name="header">
                                  <ice:outputText value="Full list" style="text-decoration:underline;" />
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink>
                                    <ice:outputText value="#{bean.assetCellValue}" title="#{bean.assetCellValue}" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink actionListener="#{bean.deleteAssetManagers}">
                                    <ice:graphicImage id="expandContractImage2" value="../images/img/close.gif" style="border: 0px solid;"
                                    title="Delete" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink action="#{bean.updateAssetManagers}">
                                    <ice:outputText value="Edit" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
                            </ice:dataTable>
     
                            <br>
                            </br>
     
                            <ice:panelGroup style="text-align:center;">
                              <ice:dataPaginator for="tableSet1" paginator="true" fastStep="3" paginatorMaxPages="4" renderFacetsIfSinglePage="false"
                              styleClass="OLPgr" id = "assetPaginator">
                                <f:facet name="first">
                                  <ice:graphicImage url="../images/img/first_btn.jpg" styleClass="OLPgrScrBtn" title="First Page" />
                                </f:facet>
     
                                <f:facet name="last">
                                  <ice:graphicImage url="../images/img/last_btn.jpg" styleClass="OLPgrScrBtn" title="Last Page" />
                                </f:facet>
     
                                <f:facet name="previous">
                                  <ice:graphicImage url="../images/img/previous_btn.jpg" styleClass="OLPgrScrBtn" title="Previous Page" />
                                </f:facet>
     
                                <f:facet name="next">
                                  <ice:graphicImage url="../images/img/next_btn.jpg" styleClass="OLPgrScrBtn" title="Next Page" />
                                </f:facet>
                              </ice:dataPaginator>
                            </ice:panelGroup>
                          </ice:panelGroup>
     
     
     
     
     
                          <ice:panelGroup style=" border: 1px solid #ABABAB; " id="idPanelGroupTxtAsset">
                            <ice:panelGrid columns="2">
                              <ice:panelGrid columns="1" id="idPanelGridAsset">
                                <ice:outputText value="Full Name" style="color:white;" />
     
                                <ice:outputText value="Trader Id (definitive)" style="color:white;" />
                              </ice:panelGrid>
     
                              <ice:panelGrid columns="1" id="idPanelGridTxtAsset">
                                <ice:inputText id="idTxtFullNameAsset" value="#{bean.fullNameAsset}" partialSubmit="true"/>
     
                                <ice:inputText id="idTxtTraderIdAsset" value="#{bean.traderIdAsset}" partialSubmit="true"/>
                              </ice:panelGrid>
    ....
    Merci bien pour ton aide


    EDIT :

    Je viens de trouver je crois la raison de problème.

    C'est a cause du composant Popup, si je laisse mon inputText à l'intérieur de la popup impossible de le mettre a jour car il est aussitôt setter à "".
    Et bizarrement, quand je l'est sorti du composant popup, ça marche super bien, juste avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void updateAssetManagers()
    	{
    		try
    		{
    			HtmlDataTable dataTable	= (HtmlDataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("popupForm:tableSet1");
    			AssetManagerBean asset 	= (AssetManagerBean)dataTable.getRowData();
     
    			txtTest = asset.getName();
    Voila ma jspx en entier cette fois
    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root jsfc="f:view" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core" xmlns:ice="http://www.icesoft.com/icefaces/component">
      <f:view>
        <ice:outputHtml>
          <ice:outputHead>
            <ice:outputStyle id="outputStyle2" href="./xmlhttp/css/rime/rime.css" />
     
            <link rel='stylesheet' type='text/css' href='${facesContext.externalContext.requestContextPath}/css/style.css' />
          </ice:outputHead>
     
          <ice:outputBody>
            <ice:form >
     
              <ice:panelGroup styleClass="mainpanelStyle ">
              <ice:inputText id="idTxtTest" value="#{bean.txtTest}" />
                <ice:panelTabSet selectedIndex="#{bean.focusIndex}" styleClass="stylePnlTabSet">
                  <ice:panelTab label="Client list" id="panelTab1">
                    <ice:panelGroup style="text-align:center;">
                      <ice:dataTable value="#{bean.rowDataModel}" var="row" id="table1" rows="4" cellpadding="0" width="200px" styleClass="tablestyle">
                        <ice:rowSelector styleClass="#{bean.styleRowSelector}" />
     
                        <ice:column>
                          <f:facet name="header">
                            <ice:outputText value="Client Id" style="text-decoration:underline;" />
                          </f:facet>
     
                          <ice:panelGroup style="text-align:center;">
                            <ice:commandLink actionListener="#{bean.openPopup}">
                              <ice:outputText value="#{bean.cellValue}" />
                            </ice:commandLink>
                          </ice:panelGroup>
                        </ice:column>
                      </ice:dataTable>
     
                      <br>
                      </br>
     
                      <ice:panelGroup style="text-align:center;">
                        <ice:dataPaginator for="table1" paginator="true" fastStep="3" paginatorMaxPages="4" renderFacetsIfSinglePage="false"
                        styleClass="OLPgr">
                          <f:facet name="first">
                            <ice:graphicImage url="../images/img/first_btn.jpg" styleClass="OLPgrScrBtn" title="First Page" />
                          </f:facet>
     
                          <f:facet name="last">
                            <ice:graphicImage url="../images/img/last_btn.jpg" styleClass="OLPgrScrBtn" title="Last Page" />
                          </f:facet>
     
                          <f:facet name="previous">
                            <ice:graphicImage url="../images/img/previous_btn.jpg" styleClass="OLPgrScrBtn" title="Previous Page" />
                          </f:facet>
     
                          <f:facet name="next">
                            <ice:graphicImage url="../images/img/next_btn.jpg" styleClass="OLPgrScrBtn" title="Next Page" />
                          </f:facet>
                        </ice:dataPaginator>
                      </ice:panelGroup>
                    </ice:panelGroup>
                  </ice:panelTab>
     
                  <ice:panelTab label="Assignee" id="panelTab2">
                    <ice:panelGrid columns="2">
                      <ice:panelGrid columns="1">
                        <ice:outputText value="Fix connector" style="color:white;" />
     
                        <ice:outputText value="By phone" style="color:white;" />
                      </ice:panelGrid>
     
                      <ice:panelGrid columns="1">
                        <ice:inputText id="txtFixConnector" />
     
                        <ice:inputText id="txtByPhone" />
                      </ice:panelGrid>
     
                      <ice:panelGroup style="text-align: right;">
                        <br />
     
                        <ice:commandButton image="../images/img/ok.png" immediate="true" />
                      </ice:panelGroup>
                    </ice:panelGrid>
                  </ice:panelTab>
                </ice:panelTabSet>
              </ice:panelGroup>
    		</ice:form>
     
    		<ice:form id="popupForm">
              <ice:panelPopup visible="#{bean.popupVisible}" styleClass="icePnlPopTabSet" modal="true">
                <f:facet name="header">
                  <ice:panelGrid style="text-align: right;" width="100%" cellpadding="0" cellspacing="0" columns="1">
                    <ice:commandButton image="../images/img/closePopup.gif" action="#{bean.closePopup}" title="Close this draggable popup"
                    immediate="true" />
                  </ice:panelGrid>
                </f:facet>
     
                <f:facet name="body">
                  <ice:panelGroup id="tabSetTabs" style="text-align:left; height:220px;">
                    <ice:panelGrid columns="3">
                      <ice:commandButton actionListener="#{bean.selectAssetManagers}" value="AssetManagers" />
     
                      <ice:commandButton actionListener="#{bean.selectFunds}" value="Funds" />
     
                      <ice:commandButton actionListener="#{bean.selectAuthorizedBrokers}" value="AuthorizedBrokers" />
     
                    </ice:panelGrid>
     
                    <ice:panelStack selectedPanel="#{bean.selectedPanel}">
                      <ice:panelGroup id="assetManagersPanel">
                        <ice:panelGrid columns="2" styleClass="panelPopupGrid" id="idPanelGrid1">
                          <ice:panelGroup style=" border: 1px solid #ABABAB; " id ="idDatatableAssetPanel">
                            <ice:dataTable value="#{bean.assetRowDataModel}" var="row" id="tableSet1" rows="4" cellpadding="0" width="200px"
                            styleClass="tablestyle">
                              <ice:rowSelector styleClass="#{bean.styleRowSelector}" />
     
                              <ice:column>
                                <f:facet name="header">
                                  <ice:outputText value="Full list" style="text-decoration:underline;" />
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink>
                                    <ice:outputText value="#{bean.assetCellValue}" title="#{bean.assetCellValue}" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink actionListener="#{bean.deleteAssetManagers}">
                                    <ice:graphicImage id="expandContractImage2" value="../images/img/close.gif" style="border: 0px solid;"
                                    title="Delete" />
                                  </ice:commandLink>
                                </ice:panelGroup>
     
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink action="#{bean.updateAssetManagers}">
                                    <ice:outputText value="Edit" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
                            </ice:dataTable>
     
                            <br>
                            </br>
     
                            <ice:panelGroup style="text-align:center;">
                              <ice:dataPaginator for="tableSet1" paginator="true" fastStep="3" paginatorMaxPages="4" renderFacetsIfSinglePage="false"
                              styleClass="OLPgr" id = "assetPaginator">
                                <f:facet name="first">
                                  <ice:graphicImage url="../images/img/first_btn.jpg" styleClass="OLPgrScrBtn" title="First Page" />
                                </f:facet>
     
                                <f:facet name="last">
                                  <ice:graphicImage url="../images/img/last_btn.jpg" styleClass="OLPgrScrBtn" title="Last Page" />
                                </f:facet>
     
                                <f:facet name="previous">
                                  <ice:graphicImage url="../images/img/previous_btn.jpg" styleClass="OLPgrScrBtn" title="Previous Page" />
                                </f:facet>
     
                                <f:facet name="next">
                                  <ice:graphicImage url="../images/img/next_btn.jpg" styleClass="OLPgrScrBtn" title="Next Page" />
                                </f:facet>
                              </ice:dataPaginator>
                            </ice:panelGroup>
                          </ice:panelGroup>
     
                          <ice:panelGroup style=" border: 1px solid #ABABAB; " id="idPanelGroupTxtAsset">
                            <ice:panelGrid columns="2">
                              <ice:panelGrid columns="1" id="idPanelGridAsset">
                                <ice:outputText value="Full Name" style="color:white;" />
     
                                <ice:outputText value="Trader Id (definitive)" style="color:white;" />
                              </ice:panelGrid>
     
                              <ice:panelGrid columns="1" id="idPanelGridTxtAsset">
                                <ice:inputText id="idTxtFullNameAsset" value="#{bean.fullNameAsset}" partialSubmit="true"/>
     
                                <ice:inputText id="idTxtTraderIdAsset" value="#{bean.traderIdAsset}" partialSubmit="true"/>
                              </ice:panelGrid>
     
                              <ice:panelGrid columns="2">
                                <br />
     
                                <br />
     
                                <ice:commandButton image="../images/img/ok.png" actionListener="#{bean.addAssetManagers}" style="text-align:right;" />
                              </ice:panelGrid>
                            </ice:panelGrid>
                          </ice:panelGroup>
                        </ice:panelGrid>
                      </ice:panelGroup>
     
                      <ice:panelGroup id="fundsPanel">
                        <ice:panelGrid columns="2" styleClass="panelPopupGrid">
                          <ice:panelGroup style=" border: 1px solid #ABABAB; " id ="idDatatableFundsPanel">
                            <ice:dataTable value="#{bean.fundsRowDataModel}" var="row" id="tableSet2" rows="4" cellpadding="0" width="200px"
                            styleClass="tablestyle">
                              <ice:rowSelector styleClass="#{bean.styleRowSelector}" />
     
                              <ice:column>
                                <f:facet name="header">
                                  <ice:outputText value="Full list" style="text-decoration:underline;" />
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink>
                                    <ice:outputText value="#{bean.fundsCellValue}" title="#{bean.fundsCellValue}" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink actionListener="#{bean.deleteFunds}">
                                    <ice:graphicImage id="expandContractImage2" value="../images/img/close.gif" style="border: 0px solid;"
                                    title="Delete" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
     
                              <ice:column>
                                <f:facet name="header">
                                </f:facet>
     
                                <ice:panelGroup style="text-align:center;">
                                  <ice:commandLink actionListener="#{bean.updateFunds}">
                                    <ice:outputText value="Edit" />
                                  </ice:commandLink>
                                </ice:panelGroup>
                              </ice:column>
                            </ice:dataTable>
     
                            <br>
                            </br>
     
                            <ice:panelGroup style="text-align:center;">
                              <ice:dataPaginator for="tableSet2" paginator="true" fastStep="3" paginatorMaxPages="4" renderFacetsIfSinglePage="false"
                              styleClass="OLPgr" id = "fundsPaginator">
                                <f:facet name="first">
                                  <ice:graphicImage url="../images/img/first_btn.jpg" styleClass="OLPgrScrBtn" title="First Page" />
                                </f:facet>
     
                                <f:facet name="last">
                                  <ice:graphicImage url="../images/img/last_btn.jpg" styleClass="OLPgrScrBtn" title="Last Page" />
                                </f:facet>
     
                                <f:facet name="previous">
                                  <ice:graphicImage url="../images/img/previous_btn.jpg" styleClass="OLPgrScrBtn" title="Previous Page" />
                                </f:facet>
     
                                <f:facet name="next">
                                  <ice:graphicImage url="../images/img/next_btn.jpg" styleClass="OLPgrScrBtn" title="Next Page" />
                                </f:facet>
                              </ice:dataPaginator>
                            </ice:panelGroup>
                          </ice:panelGroup>
     
                          <ice:panelGroup style=" border: 1px solid #ABABAB; ">
                            <ice:panelGrid columns="2">
                              <ice:panelGrid columns="1">
                                <ice:outputText value="Full Name" style="color:white;" />
     
                                <ice:outputText value="Trader Id (definitive)" style="color:white;" />
                              </ice:panelGrid>
     
                              <ice:panelGrid columns="1">
                                <ice:inputText id="idTxtFullNameFunds" value="#{bean.fullNameFunds}" partialSubmit="true"/>
     
                                <ice:inputText id="idTxtTraderIdFunds" value="#{bean.traderIdFunds}" partialSubmit="true"/>
                              </ice:panelGrid>
     
                              <ice:panelGrid columns="2">
                                <br />
     
                                <br />
     
                                <ice:commandButton image="../images/img/ok.png" actionListener="#{bean.addFunds}" style="text-align:right;" />
                              </ice:panelGrid>
                            </ice:panelGrid>
                          </ice:panelGroup>
                        </ice:panelGrid>
                      </ice:panelGroup>
     
                      <ice:panelGroup id="authorizedBrokersPanel">
                      </ice:panelGroup>
                    </ice:panelStack>
                  </ice:panelGroup>
                </f:facet>
              </ice:panelPopup>
            </ice:form>
          </ice:outputBody>
        </ice:outputHtml>
      </f:view>
    </jsp:root>
    Malheureusement je dois afficher cet input dans une popup, car la popup permet d'afficher, modifier, ajouter, supprimer des items d'un objet qui est affiché dans la page principale.

    Sincèrement je sais pas comment faire.

  11. #11
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Par défaut
    Je viens de trouver une solution moche mais qui me permet de contourner ce problème ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ice:inputText id="idTxtFullNameAsset" value="#{bean.fullNameAsset}" partialSubmit="true"/>
     
                                <ice:inputText id="idTxtTraderIdAsset" value="#{bean.traderIdAsset}" partialSubmit="true"/>
    Il faut que fullNameAsset et traderIdAsset soit initialiser avec une chaine non vide, espace par exemple. Comme ça la mise a jour des inputText marche, bizar !!!

    Quelqu'un pourrait m'expliquer pour quoi ça marche dans ce cas ?

    EDIT :

    J'ai trouvé la source du problème. C'est le rowSelector de ma dataTable qui causer ce problème.
    Je crois que lors du clique sur le lien de la datatable (Edit) pour setter le inputText, il y a un événement lié au rowselector qui est déclencher automatiquement par Icefaces pour mettre à jour le managed bean. C'est ce qui explique le faite que mon inputText est aussi tôt remit à vide après ma mise à jour.

    Cela résout le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ice:rowSelector styleClass="#{bean.styleRowSelector}" toggleOnClick="false"/>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour setter une Foreign Key avec TopLink(ValueHolderInterface)
    Par Kcintim dans le forum Persistance des données
    Réponses: 1
    Dernier message: 19/06/2011, 11h40
  2. [fileupload] problème pour parser la requete
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 12
    Dernier message: 24/04/2008, 12h02
  3. C/asm : problème pour link
    Par SteelBox dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/04/2004, 23h03
  4. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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