2010-03-01 3 views
1

il y a clair, effacer tous les boutons sur le composant richfaces fileUpload.comment puis-je ajouter un événement à richfaces fileUpload "sur effacer"

<rich:fileUpload id="quoteFile" tabindex="10" listHeight="80" maxFilesQuantity="1" onuploadcanceled="" 
clearControlLabel="" 
clearAllControlLabel="" 
acceptedTypes="xml" 
fileUploadListener="#{loadSaveQuotes.uploadListener}">  
<a4j:support event="onuploadcanceled" action="#{loadSaveQuotes.clearUploadData}" reRender="footer" /> 
</rich:fileUpload> 

tout ce que je veux sont:

1, enlever les deux boutons de sorte que l'utilisateur final ne peut pas cliquer dessus. comme je l'ai mis clearControlLabel à "", et clearAllControlLabel à "", mais seulement clearControlLabel est caché. toujours avoir effacer tout contrôle apparaissent comme bouton [x] et je clique toujours dessus

2, si je ne peux pas supprimer ces boutons, alors comment puis-je prendre le contrôle d'entre eux. comme ajouter un écouteur d'événement à celui sur l'événement clear. J'ai ajouté un événement de support a4j: mais il ne se déclenche pas lorsque je clique sur le bouton Effacer.

merci beaucoup pour votre contribution.

Répondre

3

Ajouter un a4j: support de l'événement JavaScript 'onclear'. Le code est explicite:

<rich:fileUpload id="upload"> 
    <a4j:support event="onclear" reRender="upload"/> 
</rich:fileUpload> 
0

Vous pouvez masquer ces boutons via CSS, par ex. vous pouvez donner à votre fileupload une classe supplémentaire comme

<rich:fileUpload styleClass="my-upload"> etc. </rich:fileUpload> 

puis utilisez CSS Specificity passer outre l'apparition de ce composant fileupload:

.my-upload .rf-fu-btns-rgh, .my-upload .rf-fu-itm-rgh { 
    display: none; 
} 

Vous pouvez choisir une combinaison de sélecteurs qui a une spécificité plus élevée que l'original un de RichFaces. Je trouve qu'une classe supplémentaire est la solution la plus propre, car elle me permet d'avoir des composants RichFaces "normaux" et "modifiés" les uns à côté des autres, ne différant que par leur classe de style.

Vous pouvez rechercher les classes de style RichFaces des éléments que vous souhaitez modifier dans le RichFaces component documentation ou avec votre outil d'inspection de site Web préféré.

0

J'avais la même exigence. Masquer tout le bouton Effacer et Effacer le lien, mais seulement lorsque le fichier est soumis pour le téléchargement. J'ai résolu cette exigence avec css dynamique via JavaScript. Voici l'exemple.

riche: contrôle fileUpload


<rich:fileUpload id="excelUploader" 
       fileUploadListener="#{uploadUIController.excelFileUploadListener}" 
       acceptedTypes=".xls" 
       maxFilesQuantity="1" 
       noDuplicate="true" 
       ontyperejected="Wrong file type selected !" 
       serverErrorLabel="Invalid file type selected !" 
       listHeight="100px" 
       doneLabel="Excel Upload Completed !" 
       onfilesubmit="showHideClearLink()" 
       styleClass="fileUploadClass"/>   

code Javascript au début du fichier ...


<script type="text/javascript"> 
function showHideClearLink() 
{ 
var styleSheet = document.createElement('style') 
styleSheet.innerHTML = ".fileUploadClass .rf-fu-btns-rgh, .fileUploadClass .rf-fu-itm-rgh {display: none;}"; 
document.body.appendChild(styleSheet); 
} 


Questions connexes