Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Struts-layout] DatagridSelect: une valeur de liste par defaut

8 réponses
Avatar
tsalm
Bonjour,

Utilisateur de Struts-layout 1.2, j'ai ce code :


<layout:datagrid
model=3D"datagrid"
property=3D"datagrid"
multipleSelectionAllowed=3D"false"
selectionAllowed=3D"false">

<layout:datagridSelect title=3D"Regule" property=3D"codeRegime">
<layout:option value=3D"RL" key=3D"R=E9gule local"/>
<layout:option value=3D"RG" key=3D"R=E9gule g=E9n=E9ral" />
</layout:datagridSelect>


<layout:row>
<layout:button
onclick=3D"StrutsLayout.addDatagridLine('datagrid')">Ajouter</
layout:button>
</layout:row>

</layout:datagrid>


Est-il possible de :
- Sp=E9cifier le texte un texte par defaut (par exemple "--") tant
que rien n'est s=E9l=E9ctionn=E9 dans la combobox ?
- rendre cette combobox obligatoire (une sorte de
isRequired=3D"true") ?

D'avance merci pour votre aide,
TSalm

8 réponses

Avatar
Lionel
tsalm wrote:
<layout:datagridSelect title="Regule" property="codeRegime">
<layout:option value="RL" key="Régule local"/>
<layout:option value="RG" key="Régule général" />
</layout:datagridSelect>

- Spécifier le texte un texte par defaut (par exemple "--") tant
que rien n'est séléctionné dans la combobox ?


Ajoute:
<layout:option value="" key="--"/>


- rendre cette combobox obligatoire (une sorte de
isRequired="true") ?


non, il faut faire le test toi meme dans ton form ou en javascript.

Avatar
tsalm
On 1 fév, 14:19, "Lionel" <SPAMcoollATfreePOINTfr> wrote:
tsalm wrote:
<layout:datagridSelect title="Regule" property="codeRegime">
<layout:option value="RL" key="Régule local"/>
<layout:option value="RG" key="Régule général" />
</layout:datagridSelect>
- Spécifier le texte un texte par defaut (par exemple "--") tant
que rien n'est séléctionné dans la combobox ?


Ajoute:
<layout:option value="" key="--"/>



Je me suis mal exprimé, j'aurais voulu faire quelquechose comme ça :

<form>
<select id="combo"/>
<option value="choix 1"/>Mon choix 1
<option value="choix 2"/>Mon choix 2
<option value="choix 3"/>Mon choix 3
</select>
</form>
<script language="javascript">
document.getElementById("combo").selectedIndex=-1
</script>

ou cela m'irai bien aussi :-) :
<form>
<select id="combo"/>
<option selected disabled value="--"/>--
<option value="choix 1"/>Mon choix 1
<option value="choix 2"/>Mon choix 2
<option value="choix 3"/>Mon choix 3
</select>
</form>


- rendre cette combobox obligatoire (une sorte de
isRequired="true") ?


non, il faut faire le test toi meme dans ton form ou en javascript.


ok
et est-il possible "d'injecter" des paramètres purement HTML dans une
balise layout:datagridSelect ?
exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


Avatar
Lionel
tsalm wrote:
On 1 fév, 14:19, "Lionel" <SPAMcoollATfreePOINTfr> wrote:
tsalm wrote:
<layout:datagridSelect title="Regule" property="codeRegime">
<layout:option value="RL" key="Régule local"/>
<layout:option value="RG" key="Régule général" />
</layout:datagridSelect>
- Spécifier le texte un texte par defaut (par exemple "--") tant
que rien n'est séléctionné dans la combobox ?


Ajoute:
<layout:option value="" key="--"/>



Je me suis mal exprimé, j'aurais voulu faire quelquechose comme ça :

<form>
<select id="combo"/>
<option value="choix 1"/>Mon choix 1
<option value="choix 2"/>Mon choix 2
<option value="choix 3"/>Mon choix 3
</select>
</form>
<script language="javascript">
document.getElementById("combo").selectedIndex=-1
</script>


Quelle est la différence par rapport à mettre un choix sans value avec un
test pour rendre la sélection d'une option obligatoire ? :o)

et est-il possible "d'injecter" des paramètres purement HTML dans une
balise layout:datagridSelect ?
exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


DataGridSelectTag étend CollectionInputTag qui possède des attributs
onchange et onfocus.
J'en déduis qu'il suffit de les rajouter dans la TLD sur DataGridSelectTag
pour que ca fonctionne...



Avatar
TSalm
tsalm wrote:
On 1 fév, 14:19, "Lionel" <SPAMcoollATfreePOINTfr> wrote:
tsalm wrote:
<layout:datagridSelect title="Regule" property="codeRegime">
<layout:option value="RL" key="Régule local"/>
<layout:option value="RG" key="Régule général" />
</layout:datagridSelect>
- Spécifier le texte un texte par defaut (par exemple "--") tant
que rien n'est séléctionné dans la combobox ?
Ajoute:

<layout:option value="" key="--"/>

Je me suis mal exprimé, j'aurais voulu faire quelquechose comme ça :


<form>
<select id="combo"/>
<option value="choix 1"/>Mon choix 1
<option value="choix 2"/>Mon choix 2
<option value="choix 3"/>Mon choix 3
</select>
</form>
<script language="javascript">
document.getElementById("combo").selectedIndex=-1
</script>


Quelle est la différence par rapport à mettre un choix sans value
avec un

test pour rendre la sélection d'une option obligatoire ? :o)



C'est une question ergonomique: pourquoi proposer un choix dans une
liste qui ne doit pas être sélectionné !? ;-)


et est-il possible "d'injecter" des paramètres purement HTML dans une
balise layout:datagridSelect ?
exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


DataGridSelectTag étend CollectionInputTag qui possède des attributs
onchange et onfocus.
J'en déduis qu'il suffit de les rajouter dans la TLD sur
DataGridSelectTag

pour que ca fonctionne...




exact, ça fonctionne à merveille,
Merci!

TSalm




Avatar
tsalm
et est-il possible "d'injecter" des paramètres purement HTML dans u ne
balise layout:datagridSelect ?
exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


DataGridSelectTag étend CollectionInputTag qui possède des attribu ts
onchange et onfocus.
J'en déduis qu'il suffit de les rajouter dans la TLD sur
DataGridSelectTag

pour que ca fonctionne...




exact, ça fonctionne à merveille,


oups, je suis allé un peu trop vite en besogne, ça ne fonctionne que
pour les lignes qui ne sont pas ajoutées dynamiquement :-(



Avatar
Lionel
tsalm wrote:
et est-il possible "d'injecter" des paramètres purement HTML
dans une >> balise layout:datagridSelect ?


exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


DataGridSelectTag étend CollectionInputTag qui possède des
attributs > onchange et onfocus.

J'en déduis qu'il suffit de les rajouter dans la TLD sur
DataGridSelectTag

pour que ca fonctionne...




exact, ça fonctionne à merveille,


oups, je suis allé un peu trop vite en besogne, ça ne fonctionne que
pour les lignes qui ne sont pas ajoutées dynamiquement :-(


Ben oui, faut pas rêver :)
Si c'est pas dynamique, tu peux le faire en bidouillant dans le datagrid.js
la fonction
addDatagridCell. Il suffit d'ajouter "à la main" des attributs sur les
colonnes concernées. C'est pas très beau, mais au moins ca marche très bien.




Avatar
tsalm
On 5 fév, 18:14, "Lionel" <SPAMcoollATfreePOINTfr> wrote:
tsalm wrote:
et est-il possible "d'injecter" des paramètres purement HTML
dans une >> balise layout:datagridSelect ?


exemple: ajouter un onClick="uneFonction()" :
<layout:datagridSelect title="Regule" property="codeRegime"
onClick="uneFonction()">


DataGridSelectTag étend CollectionInputTag qui possède des
attributs > onchange et onfocus.

J'en déduis qu'il suffit de les rajouter dans la TLD sur
DataGridSelectTag

pour que ca fonctionne...


exact, ça fonctionne à merveille,


oups, je suis allé un peu trop vite en besogne, ça ne fonctionne que
pour les lignes qui ne sont pas ajoutées dynamiquement :-(


Ben oui, faut pas rêver :)
Si c'est pas dynamique, tu peux le faire en bidouillant dans le datagrid. js
la fonction
addDatagridCell. Il suffit d'ajouter "à la main" des attributs sur les
colonnes concernées. C'est pas très beau, mais au moins ca marche tr ès bien.


Oui, je me suis lancé dans la re-écriture de quelques fonctions de
"datagrid.js".
mais ça reste surtout embêtant pour les mises-à_jours de struts...
Merci pour ton aide.

Es tu le même Lionel qui écume la mailing-list de Struts-Layout ? :)





Avatar
Lionel
tsalm wrote:
Oui, je me suis lancé dans la re-écriture de quelques fonctions de
"datagrid.js".
mais ça reste surtout embêtant pour les mises-à_jours de struts...


heureusement ce js change très rarement.
J'ai ajoute une fonction addAttributes qui ajoute "en dur" les attributs
requis en fonction de la colonne (toutes mes colonnes ont des noms
différents), et j'appelle cette fonction une seule fois dans
addDatagridCell. Du coup les maj sont faciles car une seule ligne + une
fonction diffèrent entre ma version et celle du build.

Merci pour ton aide.


de rien

Es tu le même Lionel qui écume la mailing-list de Struts-Layout ? :)


oui :)