quinta-feira, 29 de abril de 2010

Alterando a escuta do Remote Desktop

Caso você tenha a porta 3389 bloqueada, você pode alterar para alguma porta que você tenha liberada e não esteja em uso. Por exempo, vamos alterar para a porta 80. (ou 433).

Lembrando que nesse caso, eu não tenho nenhum webservices nessa maquina rodando na porta 80.

Você deve alterar no registro:

HKEY_LOCAL_MACHINE
Chave: \ System \ CurrentControlSet \ Control \ TerminalServer \ WinStations \ RDP-Tcp
Nome: PortNumber
Tipo: REG_DWORD
Valor: número desejado de porta em formato decimal

Então, se você usar o programa Windows Remote Desktop Connection para se conectar ao computador, siga o endereço que deseja conectar-se com dois pontos eo número da porta que você mudou para, por exemplo 255.255.255.255:433 ou 192.167.178.25:80

quarta-feira, 15 de julho de 2009

Erro em tempo de execução do Microsoft JScript: '__pendingCallbacks[...].async' é nulo ou não é um objecto.

Você está utilizando callbacks e se depara com o erro:

__pendingCallbacks[...].async' is null or not an object

Esse é o código original: em negrito - for( i = 0 - o problema, e logo mais em negrito tb aonde ocorre o problema:


// Código original, gerado pelo asp.net 
function WebForm_CallbackComplete()    
 {       
  for (i = 0; i < __pendingCallbacks.length; i++)   
   {
    callbackObject = __pendingCallbacks[i]; 
    if (callbackObject == callbackObject.xmlRequest(callbackObject.xmlRequest.readyState == 4))
     {
      WebForm_ExecuteCallback(callbackObject); 
      if (!__pendingCallbacks[i].async)   {
      __synchronousCallBackIndex = -1;
      } 
      __pendingCallbacks[i] = null; 
      var callbackFrameID = "__CALLBACKFRAME" + i; 
      var xmlRequestFrame = document.getElementById(callbackFrameID); 
      if (xmlRequestFrame) { 
      xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); 
      }  
     }               
    }              
   }  
 }
 
O problema:
O i de for( i = 0 está como uma variavel global e não pode alterar dentro do ciclo.
O que fazer? adicione um var para torna-la local.
for(var i = 0
A solução completa e subitiuindo a função fica (coloque o script em sua página);

ClientValidate com Validation Group

Para verificar se a página é valida utilizando somente um grupo de controles, via javascript, utilize:
 
<script language="javascript>
if (Page_ClientValidate('buttonSubmit.ValidationGroup') ) {
    //do your script
}
</script>

Habilitar o Validador e Forçar validação via JabaScript

Enable a validator via javascript

O metodo para habilitar ou desabilitar o validador é:

function ValidatorEnable(val, enable)

aonde val é a referencia para o <span> do elemento validador, ou seja o clientID do validador, o enable  é o true ou false para habilitar ou desabilitar

Force a validation via javascript

Caso você queria validar (ativar, funcionar, excutar...) o validador:

function ValidatorValidate(val, validationGroup, event)

val é você viu acima, validationGroup  é o nome do grupo que você do seus controle, caso não esteja usando pode deixar... afinal, utilizando somente o primeiro parametro já funciona.

Fazer click do botão via javascript

$get(btn).click();

Page_ClientValidate e ValidatorValidate

Caso você precise em JavaScript verificar se a página é válida, utilizando os controladores em asp.net (validators) você pode usar:
 
if (Page_ClientValidate()) {
 
}
 
Porém antes disso você pode querer forçar via javascript os validadores, então utilize:

ValidatorValidate(document.getElementById('RangeValidator1.ClientID'));

Este comando irá força o validador, caso seja esteja dynamic ou static, irá apresentar a mensagem.

Caso você precise deste situação para o summary... não tem, e nem o faça. Basta colocar os controles como lista aonde você deseja o Summary.

 

Click e eventos de botões com WebForm_DoPostBackWithOptions e new WebForm_PostBackOptions

 Caso você precise executavar via javascript, algo como <scritp> fazClickbotao() </script> em sua página e precisa
 recuperar o comando que o asp.net gera para o botão basta colocar em seu ClientScript.RegisterClientScriptBlock:
 ClientScript.GetPostBackEventReference(btnSeuBotao, null)
 Quando você olhar o fonte da página irá ver que gerou a função do seu botão, use como for, eu usei para um CallbackEvent