как я могу добавить событие в richfaces fileUpload "на очистке" - PullRequest
1 голос
/ 01 марта 2010

есть очистить, очистить все кнопки на компоненте richfaces fileUpload.

<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>

все, что я хочу, это:

1, удалите обе кнопки, чтобы конечный пользователь не мог щелкнуть ее. как я установил clearControlLabel на "", а clearAllControlLabel на "", но скрывается только clearControlLabel. все еще ясно, что все элементы управления отображаются как кнопка [x], и я все еще нажимаю на нее

2, если я не могу удалить эти кнопки, как мне их контролировать? как добавить слушатель события к этому при очистке события. Я добавил событие поддержки a4j:, но оно не срабатывает, когда я нажимаю кнопку очистки.

большое спасибо за ваш вклад.

Ответы [ 3 ]

3 голосов
/ 02 марта 2010

Добавить a4j: поддержку «onclear» события JavaScript. Код не требует пояснений:

<rich:fileUpload id="upload">
    <a4j:support event="onclear" reRender="upload"/>
</rich:fileUpload>
0 голосов
/ 04 апреля 2016

У меня было такое же требование. Кнопка «Очистить все» и «Удалить ссылку», но только когда файл передан для загрузки Я решил это требование с помощью динамического CSS через JavaScript. Ниже приведен пример.

rich: fileUpload control


<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"/>          

Javascript код в верхней части файла ...


<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);
}


0 голосов
/ 02 августа 2013

Вы можете скрыть эти кнопки через CSS, например Вы можете дать вашему файлу загрузки дополнительный класс, такой как

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

и затем используйте CSS Specificity для отмены внешнего вида этого компонента загрузки файла:

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

Вы можете выбрать любую комбинацию селекторов, которая имеет более высокую специфичность, чем оригинальная, от RichFaces. Я считаю, что наличие дополнительного класса - самое чистое решение, так как это позволило бы мне располагать «нормальные» и «модифицированные» компоненты RichFaces рядом друг с другом, отличаясь только их классом стиля.

Вы можете найти классы стилей RichFaces элементов, которые вы хотите изменить, в документации по RichFaces или в вашем любимом инструменте проверки веб-сайтов.

...