Asp: FileUpload editar mensagem “Nenhum arquivo selecionado”

Eu só preciso saber se há uma maneira de mudar a mensagem mostrada pelo Asp:FileUpload quando nenhum arquivo foi selecionado.

Esta mensagem

Obrigado.

Você substitui o texto com sua própria mensagem usando CSS pseduo-class :after . Você pode declarar uma class como esta:

 .bar:after { content:"Please select a file"; background-color:white; } 

E atribua-o ao seu controle FileUpload. A mensagem de conteúdo replaceá a original. Claro que na seleção de arquivo você precisa remover a mensagem, você pode fazer isso por exemplo via jQuery .removeClass (assumindo que o ID do seu FileUpload é “foo”):

 $('#foo').change(function() { $(this).removeClass("bar"); }) 

Demonstração: http://jsfiddle.net/5zhuL/2/

Note que esta solução parece funcionar apenas no Webkit-browser (Chrome, Opera, Safari), você pode precisar de uma alternativa para os outros.

http://jsfiddle.net/ZDgRG/

Veja o link acima. Eu uso css para esconder o texto padrão e uso um label para mostrar o que eu quero:

html

 

css

 input[type=file]{ width:90px; color:transparent; } 

javascript

 window.pressed = function(){ var a = document.getElementById('aa'); if(a.value == "") { fileLabel.innerHTML = "Choose file"; } else { var theSplit = a.value.split('\\'); fileLabel.innerHTML = theSplit[theSplit.length-1]; } }; 

Não, não é possível. Esta é a renderização padrão no Chrome e não pode ser alterada.

Se você visitar a fonte da sua página no seu navegador, o ASP.NET colocará um elemento input com type='file' invés do seu FileUpload. Você poderia simplesmente usar CSS para cobrir o texto com algo quando o atributo value estiver vazio.

Adicione este CSS apenas ao seu código. Ele simplesmente oculta o “Nenhum arquivo escolhido”.

  

http://jsfiddle.net/Lsgbx5ne/1/

 input[type=file]{ color:transparent; } input[type=file]:after { color: #000; content:" Cool!"; } 

Melhorias sobre outras soluções:

  • Funciona para texto curto
  • Não muda a cor do fundo
  • Css puro

Este trabalho em todo navegador

 window.pressed = function(){ var a = document.getElementById('aa'); if(!(a.value == "")) { var theSplit = a.value.split('\\'); fileLabel.innerHTML = theSplit[theSplit.length-1]; } }; 
 input[type=file]{ width:90px; color:transparent; }