quarta-feira, 19 de novembro de 2008

Asp.Net – evitar o postback como clique na tecla “Enter” ou “Return”

Evitar que o a tecla "enter" ou "return" faça o submit do formulário.

Acontece que no preenchimento de um formulário, muitas vezes por engano (pois queremos passar apenas para o campo seguinte) clicamos em "enter" e lá vai o formulário.

A Forma de evitar isto no asp.net é muito simples.

Basta colocar a propriedade UseSubmitBehavior="False" do <asp:Button> a false.

<asp:Button
ID="BTGravar"
runat="server"
Text="Gravar"
Width="130px"


onclick="BTGravar_Click"
UseSubmitBehavior="False"
/>

Deste modo o formulário só é enviado (post) quando clicamos no botão e não quando clicamos na tecla "enter".


 

Espero que esta pequena dica possa ajudar alguém. Parece estranho mais ainda levei algum tempo até descobrir isto. Já andava a fazer código em javascript para detectar o evento associado à tecla… E afinal é tão simples.

sexta-feira, 7 de novembro de 2008

Problemas com som num portatil HP Pavilion dv5000

De um momento para o outro o meu portátil HP Pavilion dv5097ea deixou de emitir qualquer som. Com a mensagem de que não havia hardware instalado.

No gestor de dispositivos a placa de som on board da marca Conexant tinha simplesmente "desaparecido". Na altura não me tinha apercebido por não utilizar mas o modem também da marca Conexant tinha "desaparecido".

Na Bios nada encontrei relativamente à placa de som. Em desespero instalei actualizei os drivers e a bios. Isto à excepção do driver da placa de som. Não consegui instalar porque segundo o meu bichinho, não tinha qualquer placa instalada.

Imaginei que existisse algum conflito, apesar de não haver qualquer indicação nesse sentido, pois para Windows simplesmente não existia placa de som.

Havendo conflito pensei que talvez cortando completamente a energia a coisa se resolvesse.

Já em tempos tinha tido um problema semelhante com um modem num pc. Nesse caso o modem bloqueava todo o sistema nem a bios arrancava.

Isto aconteceu na primeira semana do pc.

O mais estranho na altura era que em casa o pc nem sequer arrancava. Desligava o pc da corrente, levava-o à loja e funcionava logo. Isto ainda aconteceu umas duas vezes.

Até que cheguei à conclusão que a Solução passava por cortar a corrente ao pc durante uns segundos, para que o modem libertasse o sistema.

Foi o que resolvi fazer neste caso.

Retirei a bateria e desliguei o cabo de alimentação. Carreguei no botão de power para que ele tentasse arrancar e gastasse toda a corrente eléctrica que pudesse estar acumulada.

A seguir liguei o pc e voilá… Tinha sido encontrado novo hardware.

Uma placa de som Conexant e um modem também Conexant.

terça-feira, 4 de novembro de 2008

ERRO: Conversion of a char data type to a datetime data

Este erro ocorre na conversão de datas de string para datetim, essencialmente tem a ver com as definições locais. Ocorre quando introduzimos uma data do tipo "22-03-1953".

O que acontece é que provavelmente os setings defenidos no SQL Server, as datas estão configuradas como mm-dd-yyyy. Ou seja como ele interpreta 22 como sendo o mês, está claramente "out-of-range".

"Server Error in '/SPA' Application.

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Podemos resolver de duas formas. A primeira é converter a data no código para o formato pretendido.

A melhor solução é ir ao SQL SERVER, e alterar as propriedades do utilizador, ajustando a opção Default Language para Portugês.

No caso de a aplicação ser em ASP .NET o utilizador para o qual se deve alterar esta propriedade é o ASPNET